如何写出优美的C语言代码

基础知识

结构体

除了提供基本数据类型外,C 语言还提供给用户自己定制数据类型的能力,那就是结构体,在 C 语言中,你可以用结构体来表示任何实体。结构体正是面向对象语言中的类的概念的雏形,比如:

typedef struct{float x;float y;}Point;

定义了一个平面坐标系中的一个点,点中有两个域,x 坐标和 y 坐标。

结构体中的域称为结构体的成员。结构体中的数据类型可以是简单数据类型,也可以是其他的结构体,甚至结构体本身还可以嵌套,比如,一个标准的链表结构可以进行如下定义:

typedef struct node{void *data;// 数据指针int dataLength;// 数据长度struct node *next;// 指向下一个节点}Node;

可以看到,结构体 node 中的 next 指针的类型又是 node 类型。

函数指针

指针是 C 语言的灵魂,是 C 比其他语言更灵活,更强大的地方。所以学习 C 语言必须很好的掌握指针。函数指针,即指向函数在内存映射中的首地址的指针,通过函数指针,可以将函数作为参数传递给另一个函数,并在适当的时候调用,从而实现异步通信等功能。

比如, UNIX/Linux 系统中的信号注册函数,其原型如下:

Continue reading