C 语言预处理指令简介

本文内容

目录汇总:C 语言零基础入门教程

大多数预处理指令属于下面 3 种类型之一。

  • 宏定义#define 指令定义一个宏,#undef 指令删除一个宏定义。
  • 文件包含#include 指令导致一个指定文件的内容被包含到程序中。
  • 条件编译#if#ifdef#ifndef#elif#else#endif 指令能根据预处理器可以测试的条件来确定,是将一段文本块包含到程序中,还是将其排除在程序之外。

剩下的 #error#line#pragma 指令是更特殊的指令,较少用到。这个部分的 C 语言零基础入门教程 将深入研究预处理指令。唯一一个不会在这里详细讨论的指令是 #include

在进一步讨论之前,先来看几条适用于所有指令的规则。

  • 指令都以 # 开始# 符号不需要出现在一行的行首,只要在它之前只有空白字符就行。在 # 后是指令名,接着是指令所需要的其他信息。

  • 在指令的符号之间可以插入任意数量的空格或水平制表符。例如,下面的指令是合法的:

    1
    
    #     define     N     100
    
  • 指令总是在第一个换行符处结束,除非明确地指明要延续。如果想在下一行延续指令,我们必须在当前行的末尾使用 \ 字符。例如,下面的指令定义了一个宏来表示硬盘的容量,按字节计算:

    1
    2
    3
    4
    
    #define DISK_CAPACITY (SIDES *              \
                        TRACKS_PER_SIDE *    \
                        SECTORS_PER_TRACK *  \
                        BYTES_PER_SECTOR)
    
  • 指令可以出现在程序中的任何地方。但我们通常将 #define#include 指令放在文件的开始,其他指令则放在后面,甚至可以放在函数定义的中间。

  • 注释可以与指令放在同一行。实际上,在宏定义的后面加一个注释来解释宏的含义是一种比较好的习惯:

    1
    
    #define FREEZING_PT 32.0f   /* freezing point of water */
    

请参阅

(完)

comments powered by Disqus

本文内容