C语言的预处理命令
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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、注释
以上是关于C语言的预处理命令的主要内容,如果未能解决你的问题,请参考以下文章