【C语言】面试指南 I
1. 请描述gcc的编译过程?
gcc:GNU Compiler Collection
大致分为4个阶段:预处理、编译、汇编、链接。
- 预处理:头文件包含、宏替换、条件编译、注解删除;
- 编译:主要进行语法、语义分析,检查无误后将预处理好的文件编译成汇编语言;
- 汇编:将汇编文件转换成二进制目标文件;
- 链接:将项目中的二进制文件+所需的库+启动代码链接成可执行文件。
2. 内存的最小存储单位以及内存的最小计量单位分别是?
存储单位:二进制位;
计量单位:字节。
3. #include和#include ""的区别?
#include:到系统指定目录寻找头文件;
#include “”:首先到项目所在目录寻找头文件,没找到再去系统指定目录寻找头文件。
4. 变量的命名规则?
字母、数字、下划线组成,不能以数字开头。
5. 变量的声明和定义的区别?
声明:不需要建立存储空间;
定义:需要建立存储空间。
6. C语言中的有符号和无符号区别?
有符号:最高位是符号位,0标识正,1标识负;
无符号:最高位属于数值的一部分。