由通用双向链表的实现浅谈库函数、头文件及通用的思想

前一阵子OS组有这样一个任务,用c语言实现一个通用双向链表,要求:1、链表的数据可以是任意类型。2、包括基本的创建,销毁,添加,删除,遍历,对元素处理等基本操作。由于刚刚做完c语言课设(某信息管理系统,由三级链表实现),所以自然而然的以为这是要求做一个信息管理系统出来。于是先绕过链表数据为任意类型这个问题,做了一个数据类型为字符串的双向链表,刚刚做完...

作者: wuguangyuan 发布时间: 11-08

extern和static声明外部变量

简单点说就是: 1.extern: 我在file1.c里面定义了一个变量A,要在file2.c里也调用这个变量A,咋办?在file2.c里面声明A为exturn int A类型即可。 //file1.c #include <stdio.h> int A;//在file1.c里定义了一个变量 int func1(){ ... } //file2.c extern A;//声明A为一个已经定义的外部变量 int func2(){ } 2.static: 我在file1.c里面定义了一个变量A,不希望别的文件(如:file2...

作者: FreedomXura 发布时间: 11-08

〖转〗字节序问题--大端法小端法

一、字节序定义 字节序,顾名思义字节的顺序,再多说两句就是大于一个字节类型的数据在内存中的存放顺序(一个字节的数据当然就无需谈顺序的问题了)。 其实大部分人在实际的开发中都很少会直接和字节序打交道。唯有在跨平台以及网络程序中字节序才是一个应该被考虑的问题。 在所有的介绍字节序的文章中都会提到字节序分为两类:Big-Endian和Little-Endian。引用标准的Big-End...

作者: 剑子与剑痴 发布时间: 11-07

顺序表删除-C语言实现

#include <stdlib.h> #include <stdio.h> #define OVERFLOW -2 #define OK 1 #define ERROR 0 #define LIST_INIT_SIZE 100 #define LISTINCREMENT 10 typedef int ElemType; typedef int Status; typedef struct { ElemType *elem; int length; int listsize; }SqList; Status InitList_Sq(SqList *L) { L->elem=(ElemType *)malloc (LIST_INIT_SIZE * sizeof(ElemType)); i...

作者: shinaimiao 发布时间: 11-07

enum的使用方法

枚举常量是枚举类型中的值,即枚举值。枚举类型是一种用户定义的类型,只有用户在程序中定义它后才能被使用。用户通常利用枚举类型定义程序中需要使用的一组相关的符号常量。枚举类型的定义格式为: enum <枚举类型名> {<枚举表>}; 它是一条枚举类型定义语句,该语句以enum保留字开始,接着为枚举类型名,它是用户命名的一个标识符,以后就直接使用它表示该类型,枚举类型名...

作者: cao_lianming 发布时间: 11-06

小议 “*”与“&”

"&"----"地址运算符" “*”----“间接引用运算符”或“复引用运算符”,它返回其操作数(指针)所指向的对象。 (注意:1,“*”操作数不能是常量;2,”*“与”&“的优先级相等;3,”*“与”&“互为逆运算) eg: int *p = &y; *&p <=>*(&p)<=>*(p的地址)<=>(p的地址)指向数据的值<=>p &*p <=>&(*p)<=>&y<=>y的地址<=>p

作者: liurhyme 发布时间: 11-06

顺序表插入-C语言实现

#include <stdlib.h> #include <stdio.h> #define OVERFLOW -2 #define OK 1 #define ERROR 0 #define LIST_INIT_SIZE 100 #define LISTINCREMENT 10 typedef int ElemType; typedef int Status; typedef struct { ElemType *elem; int length; int listsize; }SqList; Status InitList_Sq(SqList *L) { L->elem=(ElemType *)malloc(LIST_INIT_SIZE * sizeof(ElemType)); if...

作者: shinaimiao 发布时间: 11-06

C++中的export关键字解释

今天,一同学问偶export的使用,偶突然发现自己也不知道该关键字的使用方法~于是,在网上找了好久才知道该关键字的作用是实现模板函数的外部调用,类似于正常函数的extern关键字,以下是一个比较容易理解的解释,于是贴出来~! 关键字:C++ export 为了访问其他编译单元(如另一代码文件)中的变量或对象,对普通类型(包括基本数据类、结构和类),可以利用关键字extern...

作者: lgj8514752 发布时间: 11-06

顺序表创建-C语言实现

#include <stdio.h> #include <stdlib.h> #define OK 1 #define ERROR 0 #define LIST_INIT_SIZE 100 typedef int ElemType; typedef int Status; typedef struct { ElemType *elem; int length; int listsize; }SqList; Status InitList_Sq(SqList *L) { L->elem=(ElemType *)malloc(LIST_INIT_SIZE * sizeof(ElemType)); if(!L->elem) exit(ERROR); L->length=0; L->lists...

作者: shinaimiao 发布时间: 11-06

Strategy策略模式

策略模式属于对象的行为模式.其用意是针对一组算法,将每一个算法封装到具有共同接口的独立类中,从而使得它们可以互相替换.策略模式使得算法可以在不影响到客户端的情况下发生变化. 这个模式涉及三个角色: *环境(Context)角色:持有一个Strategy类的引用. *抽象策略(Strategy)角色:这是一个抽象角色,通常由一个接口或抽象类实现.此角色给出所以的具体策略类所需的接口. *具体...

作者: mingwjj 发布时间: 11-05