基本概念
-
环境:
翻译环境:将源代码转换为可执行的机器指令
执行环境:用于实际执行的代码 -
翻译:
目标代码:源文件通过编译过程转换为目标代码
链接:各个目标文件由链接器链接在一起,形成一个单一而完整的可执行程序- 编译过程:
预处理器处理:简单的文本操作。所有的注释都会被预处理器拿掉,取而代之的是一个空格。
解析:判断语句的意思,产生大多数错误和警告
优化器:对目标代码进行处理,使效率更高
- 编译过程:
-
执行:
- 程序必须载入内存中(由操作系统完成),这时,那些不是存储在堆栈中的尚未初始化的变量将在这个时候得到初始值。
- 执行程序代码
- 堆栈:用于存储函数的局部变量和返回地址
- 静态内存:存储于静态内存中的值将一直保留到程序结束
-
程序的终止
三字母词:
三字母词 | 所对应的 |
---|---|
??( | [ |
??< | { |
??= | # |
??) | ] |
??> | } |
??/ | \ |
??! | 竖线 |
??` | ^ |
??- | ~ |
三字母词不常用,没有必要去记忆它。
知道这个,以免将来遇到什么错误的时候,不至于大吃一惊。
标识符的长度没有限制,但标准允许编译器忽略第31个字符以后的字符。
代码风格:
空格用于区分不同的逻辑代码段
在括号和表达式之间留下一个空格,使表达式看上去更突出
在绝大多数操作符的使用中,中间都隔以空格
缩进,以显示层次
注释都是成块出现
函数的定义中,返回类型处于独立的一行,函数的名字在下一行的起始处
未定义行为:
任何十六进制数都有可能包含在\xddd序列中,但如果结果值的大小超出了表示字符的范围,其结果就是未定义的。