当前位置: 首页 > 图文教程 > 开发语言 > C/C++ > C/C++:C语言预处理指令

C/C++
VC++ SMTP协议电子邮件传送剖析
Managed C++设计新邮件检查器
解决两个难懂的安全性问题
高级扫描技术及原理介绍
VC的另类数据库编程
Visual C++6.0 API函数操作技巧集
托盘编程全接触
在Visual C++中使用内联汇编
理解 Visual C++ Extensions for ADO
TCP/IP Winsock编程要点
VC打造自己特色的屏幕保护
Windows Sockets API实现网络异步通讯
程序界面多模式显示的实现
VC++6.0中控制运行唯一实例
WDM驱动程序设计之编译安装篇
VC编程中如何操作数据库中的图像字段
Windows 9X硬件中断设备驱动程序的开发
用控件聚合技术为FlexGrid增添PickList功能
用ATL和MFC来创建ActiveX控件
用VC进行COM编程所必须掌握的理论知识

C/C++:C语言预处理指令


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 207 ::
收藏到网摘: n/a

谈完了C语言中枚举已经类型说明后,接下来小编继续分享C语言中的预处理指令,大家认真看咯

    ANSI的标准规定, 预处理指令主要包括:

     #define

     #error

     #if

     #else

     #elif

     #endif

     #ifdef

     #ifndef

     #undef

     #line

     #pragma

    由上述指令可以看出, 每个预处理指令均带有符号"#"。下面只介绍一些常

用指令。

    1. #define 指令

    #define指令是一个宏定义指令, 定义的一般形式是:

     #define 宏替换名字符串(或数值)

    #define指令定义后,  在程序中每次遇到该宏替换名时就用所定义的字符

(或数值)代替它。

    例如: 可用下面语句定义TRUE表示数值1, FALSE表示0

     #define TRUE 1

     #define FALSE 0

    一旦在源程序中使用了TRUEFALSE, 编译时会自动的用10代替。

    注意:

    1. 在宏定义语名后没有";"

    2. Turbo C程序中习惯上用大写字符作为宏替换名, 而且常放在程序开头。

    3. 宏定义还有一个特点, 就是宏替换名可以带有形式参数,  在程序中用到

, 实际参数会代替这些形式参数。

    例如:

     #define MAX(x, y) (x>y)?x:y

     main()

     {

          int i=10, j=15;

          printf("The Maxmum is %d", MAX(i, j);

     }

    上例宏定义语句的含义是用宏替换名MAX(x, y)代替x, y中较大者,  同样也

可定义:

     #define MIN(x, y) (x<y)?x:y

    表示用宏替换名MIN(x, y)代替x, y中较小者。

 

    2.#error指令

    该指令用于程序的调试, 当编译中遇到#error指令就停止编译。其一般形式

:

     #error 出错信息

    出错信息不加引号, 当编译器遇到这个指令时, 显示下列信息并停止编译。

      Fatal: filename linename error directive

 

    3.#include 指令

       #include 指令的作用是指示编译器将该指令所指出的另一个源文件嵌入

#include指令所在的程序中, 文件应使用双引号或尖括号括起来。Turbo C 库函

数的头文件一般用#include指令在程序开关说明。

    例如:

     #include <stdio.h>

    程序也允许嵌入其它文件, 例如:

     main()

     {

          #include <help.c>

     }

    其中help.c为另一个文件, 内容可为

       printf("Glad to meet you here!");

    上例编译时将按集成开发环境的Options/Directories/Include directories

中指定的包含文件路径查找被嵌入文件。

 

    4.#if#else#endif指令

    #if#els#endif指令为条件编择指令, 它的一般形式为:

     #if 常数表达式

          语句段;

     #else

          语句段;

     #endif

    上述结构的含义是: #if指令后的常数表达式为真, 则编译#if#else

间的程序段; 否则编译#else#endif之间的程序段。

    例如:

     #define MAX 200

     main()

     {

          #if MAX>999

               printf("compiled for bigger\n");

          #else

               printf("compiled for small\n");

          #endif

     }

 

    5. #undef指令

    #undef指令用来删除事先定义的宏定义, 其一般形式为:

     #undef 宏替换名

    例如:

      #define TRUE 1

       ...

      #undef TURE

    #undef主要用来使宏替换名只限定在需要使用它们的程序段中。