首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Preprocessor

预处理器在编译前的第四阶段执行。预处理的结果是单个文件,然后传递给实际的编译器。

指令

预处理指令控制预处理器的行为。每个指令占用一行,并具有以下格式:

  • # 字符
  • 预处理指令(之一defineundefincludeififdefifndefelseelifendiflineerrorpragma)[1]
  • 参数(取决于指令)
  • 越线

null指令(#后跟一个换行符)是允许的,不起作用。

功能

预处理器具有源文件翻译功能:

  • 有条件地编译源文件的部分(由指令控制#if#ifdef#ifndef#else#elif#endif)。
  • 替换文本宏同时可能级联或引用标识符(由指令控制#define#undef,以及运营商###
  • 包含其他文件(由指令控制#include
  • 导致错误(由指令控制#error

预处理器的以下方面可以被控制:

  • 实现定义的行为(由指令#pragma和操作员控制_Pragma(自C99以来))
  • 预处理器可用的文件名和行信息(由指令控制#line

脚注

  1. 这些是由标准定义的指令。该标准没有定义其他指令的行为:它们可能被忽略,具有一些有用的含义,或使程序不合格。即使忽略,当预处理器完成时,它们也会从源代码中移除。常见的非标准扩展是#warning在编译期间发出用户定义消息的指令。

扫码关注腾讯云开发者

领取腾讯云代金券