Notes
1、调用前函数声明,以给编译器提供必要信息
2、函数定义不可嵌套(即不可定义局部函数)
3、预处理指令独占一行,#前除空格或制表符之外不可有其他字符
4、字符串字面值和字符字面值内/* */ // 不解析为注释
预处理器一旦遇到注释开始符 /* 就寻找结束符*/,因此不可嵌套块注释
预处理器将每个注释替换为一个空格
5、翻译环境、运行环境 ---- 源代码字符集、运行字符集
均包括基本字符集(7位表示的ASCII码)和扩展字符集,C只指定了基本字符集
C规定:基本字符集每个字符一字节表示、空字符一字节且所有位为0。0-10十进制数字的编码以1递增
提供char和wchar_t (<>stddef.h)
wctomb - 宽字符转多字节字符
通用字符:以\uXXXX或\UXXXXXXXX,表示,即为十六进制表示的Unicode码点
可用于标识符、字符常量、字符串字面值,但不可用于表示基本字符集
6、标识符
长度无限制,但编译器可能有限制
作用域常从声明之后开始,但类型名称,或结构、联合、枚举类型小标签,以及枚举常量名称例外
例下的Ex并未完全声明即可在结构内部使用
struct Ex { int x; int y; struct Ex *next; };
接大佬的笔记