1. #include不是C语言的语句,第一列中的#符号表明,这一行是在编译器接受之前由C预处理器处理的语句。
    2. #include ""首先在当前目录下寻找,如果找不到,再到系统目录中寻找,#include <>直接去系统目录中找。
    3. C语言里没有异常处理系统,它依赖于错误码来通知调用的函数发生了什么,返回0是成功,负数则表示失败,所以,调用者需要用if-else来检查返回码,没有其它的方法。
    4. C语言严格区分大小写,例:INT和Int为标识符,而int为关键字。
    5. 动态二维数组申请,先申请一维指针数组,二维指针就指向这个一维指针数组,然后再为该一维指针数组中的每个指针单独申请相应空间,共同组成二维数组。
    6. goto语句后面不能直接结束,至少还需要有一条语句,否则会报错。
    7. 指针使用%p输出,而非%x
    8. VxWorks指针32位,Linux指针64位。
    9. 任意非零值都可代表true(真),只有零值代表false(假),但不同系统对于标准非零值的定义就各不相同了,有的为1,有的为-1,所以对于布尔型判断应使用if (flag)if (!flag)进行,而不能if (flag == 非零值)if (flag != 非零值),同时在linux中也把返回值0作为真(因为内存初始化为0,以0值为真在一些异常情况下可以默认为真),所以均需要视具体环境决定。
    10. 不应对void *类型指针做地址运算,也即void *p; p++;,因为p的类型未定义,地址增加的长度不能确定,若指向的为整型,则应偏移4个字节,若指向字符,则应偏移1个字节,另外在ANSI C中会报错,而在GNU中则会默认是对字符类型操作。
    11. 两数相除向上取整 c = (a + b - 1) / b;
    12. strncpy等中的n代表max no.,一般代表一个数目。