面试准备——(二)专业知识(4)C/C++语言
1. 预处理 断言
assert的功能,assert(statement),如果statement为真则程序继续执行,为假则整个程序中断退出
3.
#define
【
#ifndef DISKSIM_SSD_H //如果这个头文件已经被编译过了,则这个DISKSIM_SSD_H也就被定义过,这编译到这里就不在往下编译了
#define DISKSIM_SSD_H //如果这个头文件是第一次被编译,则这个DISKSIM_SSD_H在这里定义
statement //头文件的内容
#endif //定义结束
】这个语句的作用是防止在编译的时候重复编译此头文件
4. c语言的内存管理:
对于一个c程序而言,内存空间由5个部分组成
堆,栈,bss段,数据段,代码段
堆:程序运行时被动态分配的内存段,如malloc申请的内存就在这里
栈:存放局部变量,函数被调用时其参数被压入栈,函数调用完,其返回值也存放在栈中,先进先出*****因此要少用递归,不然会爆栈,即栈的空间被用完。
bss段:存放未初始化的全局变量和静态变量
数据段:存放已初始化的全局变量和静态变量
代码段:存放程序执行的代码,通常只读