C语言的预处理命令

1、宏替换命令

  编译器遇到宏替换命令所定义的标识符时,用其后的字符串替换该标识符。用这种方式定义符号常量。形式如下:

  #define  标识符 字符串 

    #define    TRUE     1    //用 TRUE 表示1

    #define     FALSE   0    //用 FALSE 表示0

  另一用法是作为代换。宏名可取参量数,每次遇到宏名时,与之相连的形式参数由程序中的实际参数代替:

    #define     MAX(a ,b)  ( a >= b ) ? a : b      

#define     MAX(a ,b)  ( a >= b ) ? a : b
int main( )
{
      int x = 190 ,  y = 106;
      printf("MAX :  %d" ,  MAX( x , y ) );
}

命令#undef 用作取消已定义的宏名替换:

    #undef  标识符

 将宏替换限定在一个代码块内。

#define    SUCCESS    1
    printf ( " %d" , SUCCESS );
#undef SUCCESS

2、终止编译命令

  为提高调试速度,加入终止编译命令 #error :

  #error MANUAL_STOP

   编译器编译到这条代码时就停止工作,并将字符串MANUAL_STOP作为错误提示,常与条件编译命令配合使用。

3、文件包含命令

  用于在编译时插入另一个源程序中的内容。被包含文件的名字必须用“ ”或者 < > 包围。

  #include "filename.h"

  #include <stdio.h>

4、条件编译命令

  1、#if 、#else 、#elif 及#endif 

#define X 190
#define Y 106
#if X <= Y                 //  如果条件成立,编译;否则编译 #else
    printf( " MIN : %d", X );
#else
    printf( " MIN : %d", Y );
#endif

  2、#ifdef 和ifndef

  #ifdef  用于判断某个宏名称是否已定义,如果已经定义则执行#ifdef 与#endif之间的代码。

  #ifndef 用于判断某个宏名称是否未定义,与前者相反。  

#ifdef    标识符
    代码块
#endif

#ifndef 标识符
    代码块
#endif

5、修改行号命令

6、编译指示命令

7、域定义的宏名

8、注释

时间: 2025-01-09 05:45:45

C语言的预处理命令的相关文章

C语言之预处理命令

/**************************************************************************** Title:C之预处理命令 Time:2014年7月26日 **************************************************************************/ 大一时学过,C语言中预处理命令功能分为3种.(宏定义,文件包含和条件编译) 一:宏定义 格    式       #define  

9、C语言之预处理命令

预处理命令 基本概念:ANSI C标准规定可以在C源程序中加入一些"预处理命令",以改进程序设计环境,提高编程效率. 这些预处理命令是由ANSI C同一规定的,但是它们不是C语言本身的组成部分,不能直接对它们进行编译(因为编译程序不能识别它们).必须在对程序进行通常的编译之前,先对程序中这些特殊的命令进行"预编译" 经过预处理后的程序可由编译程序对预处理后的源程序进行通常的编译处理,得到可供执行的目标代码. C语言与其他高级语言的一个重要区别是可以使用预处理命令和具

C语言第十一回合:预处理命令的集中营

  [学习目标]   1.         宏定义 2.         文件包括"处理 3.         条件编译 预处理命令:能够改进程序设计的环境.提高编程效率. 其功能主要有三种:宏定义.文件包括.文件编译. ANSI标准定义的C语言预处理指令预览表 A: 宏定义 (a)不带參数的宏定义 格式:#define标识符 字符串 如:#define PI 3.1415926 *标识符被称为:宏名 *在预编译时将宏名替换成字符串的过程为:宏展开. *#define 是宏定义命令 //求圆周长

C语言预处理命令详解

一  前言 预处理(或称预编译)是指在进行编译的第一遍扫描(词法扫描和语法分析)之前所作的工作.预处理指令指示在程序正式编译前就由编译器进行的操作,可放在程序中任何位置. 预处理是C语言的一个重要功能,它由预处理程序负责完成.当对一个源文件进行编译时,系统将自动引用预处理程序对源程序中的预处理部分作处理,处理完毕自动进入对源程序的编译. C语言提供多种预处理功能,主要处理#开始的预编译指令,如宏定义(#define).文件包含(#include).条件编译(#ifdef)等.合理使用预处理功能编

C语言预处理命令总结大全

C程序的源代码中可包括各种编译指令,这些指令称为预处理命令.虽然它们实际上不是C语言的一部分,但却扩展了C程序设计的环境.本节将介绍如何应用预处理程序和注释简化程序开发过程,并提高程序的可读性.ANSI标准定义的C语言预处理程序包括下列命令: #define,#error,#include,#if,#else,#elif,#endif,#ifdef,#ifndef,#undef,#line,#pragma等.非常明显,所有预处理命令均以符号#开头,下面分别加以介绍. 一 #define 命令#d

C语言中的预处理命令

预处理功能是C语言的重要功能. 问:为什么要预处理,什么是预处理? 答:我们知道高级语言的运行过程是通过编译程序(编译器)把源代码翻译成机器语言,实现运行的.编译程序的工作包含:语法分析.词法分析.代码生成.代码优化等.但是在正式编译之前还有一些工作要做,例如:去掉注释.变换格式之类的.C语言允许在源程序中包含预处理命令,正式编译(词法分析)前,先对这些命令进行"预处理":然后在进行通常的编译处理.预处理命令从语法上讲不是C语言的一部分,但扩展了C语言程序设计的环境,简化程序开发过程:

C08 C语言预处理命令

目录 宏定义 文件包含 条件编译 预处理命令 C语言的预处理:在编译之前进行的处理,不进行编译. C语言的预处理功能有: 宏定义 文件包含 条件编译 预处理命令以符号"#"开头.. 宏定义 不带参数的宏定义 宏定义又称为宏代换.宏替换,简称"宏".格式: #define 标识符 文本 其中的标识符就是符号常量,也称为"宏名". 预处理(预编译)工作也称为宏展开:将宏名替换为文本(这个文本可以是字符串.可以是代码等).例: #define PI 3

程序猿之--C语言细节15(预处理命令细节#error、运算符#和##、__FILE__、__LINE__)

主要内容:预处理命令细节#error.运算符#和##.__FILE__.__LINE__ #include <stdio.h> /* 包含这个头文件,并不是将其所有函数都链接进程序*/ /* ##运算符 */ #define MK_ID(n) i##n /* 表示将两个记号连接 */ int MK_ID(1), MK_ID(2),MK_ID(3); /* 预处理后变成int i1,i2,i3;*/ /* 定义多个type##_max函数,函数返回类型和参数类型用define决定 * 如GENE

预处理命令[#define]说明

宏定义 宏定义是对一些常见的变量.字符串等进行定义,被定义的数据在编译会进行自动替换.有时一些变量或字符串被多次使用,当需要修改时,就需要对源文件中它们出现的地方一一修改,效率比较低,而通过宏定义,只需要对定义进行一次修改,就可以实现批量修改,提高效率,或者有时有些数字或字符需要多次输入,而数字或字符又不是很规律时,输入就会比较繁琐且容易出错.通过宏义将为输入和维护带来便利. 定义的格式 #define 标识符 字符串 其中的“#”表示这是一条预处理命令.凡是以“#”开头的均为预处理命令.“de