目录
C编程Tips
背景Background
词法Lexical
预处理Preprocessor
类型Type
操作符Operator
库函数Libraries
C编程Tips
背景Background
UNIX和C的起源
C的特点
词法Lexical
执行字符集(Execution Character Set)
空白字符(Whitespace)
行结束符(End-of-line)
注释(Comment)
不能假设所使用的字符编码(Character encoding)
词法分析的贪心法则
标识符的限制(Identifier)
整型常量(Integer constant)
浮点常量(Floating-point constant)
字符常量(Character constant)
字符串常量(String constant)
转义字符(Escape character)
预处理Preprocessor
预处理概览(Preprocessor)
参数宏(Macro with parameters)
宏扩展(Macro expansion)
预定义宏(Predifined macros)
用预定义宏判断C标准的版本
#undef取消定义
#参数字符串化(Macro stringization)
##符号合并(Macro merging)
#include文件包含(File inclusion)
条件编译(Conditional compliation)
#line指定行号
#error出错
类型Type
声明的组织形式
const与指针
复杂类型声明的分析
常量指针表达式
在多个文件中共享external name的方法
char类型的符号问题
指针的size
无效指针的特例
数组不转换为指针的场合
字节序(Byte order)
对齐限制(Alignment)
结构体成员的地址分布
结构体的填充与大小
void的用法
typedef与变长数组
类型兼容性(Type Compatibility)
类型转换(Type conversions)
类型转换规则
强制转换(Casting conversions)
赋值转换(Assignment conversions)
一元转换(Unary conversions)
二元转换(Binary conversions)
函数参数转换(Function argument conversions)
无符号类型的使用建议
操作符Operator
操作符优先级列表
关于溢出(Overflow)
结构体成员Offset
Sizeof的几点事项
二元减法与无符号数
一元减号与无符号数
复制整个数组的一个方法
移位操作符的注意事项
逻辑与/或操作符的注意事项
求值顺序(Evaluation order)
序列点(Sequence point)
库函数Libraries