C预处理器_基础知识

编译前的准备

  • 空白字符替换为一个空格(换行符除外)
  • 注释替换为一个空格
  • 把源代码里面的字符映射到源字符集
  • 定位反斜杠,把多个物理行变为一个逻辑行

define宏

  • 代码中引用宏的位置,直接用宏定义替换
  • 带参数的宏,需要在参数和宏定义表达式外面加上括号
  • 宏定义为大写字母,长度为一行

include头文件

  • 包含头文件的Include行直接被头文件里的代码替换
  • 如果头文件里面有头文件,也用相关的代码替换
  • Include和define本质上都是复制粘贴操作

inline内联函数

  • 定义: inline 和 static关键字
  • 为了减少函数调用的开销,因为函数调用过程中,建立调用,传递参数,跳转代码以及返回结果都会耗费资源
  • 和define宏也可以使代码内联
  • 内联函数也可能不起作用
  • 内联函数应定义在第一次使用的文件中
  • 如果多个文件都要使用内联函数,可以把内联函数写在头文件中,在使用该内联函数的文件中包含该头文件

标准库

  • 数学库
  • 通用工具库
  • 断言库

c标准

C标准不仅描述C语言,还描述了组成C语言的软件包、C预处理器和C
标准库。通过预处理器可以控制编译过程、列出要替换的内容、指明要编译的代码行和影响编译器其他方面的行为。C库扩展了C语言的作用范围,为许多编程问题提供现成的解决方案。

猜你喜欢

转载自blog.csdn.net/njnujuly/article/details/73196471