C语言几个预编译指令的用法

Python08

C语言几个预编译指令的用法,第1张

处理指令是以#号开头的代码行。#号必须是该行除了任何空白字符外的第一个字符。#后是指令关键字,在关键字和#号之间允许存在任意个数的空白字符。整行语句构成了一条预处理指令,该指令将在编译器进行编译之前对源代码做某些转换。下面是部分预处理指令:

指令 用途

# 空指令,无任何效果

#include包含一个源代码文件

#define 定义

#undef 取消已定义的宏

#if 如果给定条件为真,则编译下面代码

#ifdef 如果宏已经定义,则编译下面代码

#ifndef 如果宏没有定义,则编译下面代码

#elif 如果前面的#if给定条件不为真,当前条件为真,则编译下面代码

#endif 结束一个#if……#else条件编译块

#error 停止编译并显示错误信息

希望可以帮到你,谢谢!

C程序的源代码中可包括各种编译指令,这些指令称为预处理命令。虽然它们实际上不是C语言的一部分,但却扩展了C程序设计的环境。所有预处理命令均以符号#开头.

不同的预处理指令有不同的作用

比如命令#define定义了一个标识符及一个串。在源程序中每次遇到该标识符时,均以定义的串代换它。ANSI标准将标识符定义为宏名,将替换过程称为宏替换

还有其他预处理命令

#define,#error,#include,#if,#else,#elif,#endif,#ifdef,#ifndef,#undef,#line,#pragma等 可以自己查查

在预处理命令中,#的使用很多。

1 所有预处理命令的标记。第一个字符都是#。

包括

#include

#if

#ifdef

#ifndef

#else

#endif

#undef

#error

#warning

#pragma

#line

等等。

2 在宏定义中,即#define中,#还有其他作用:

1) 单独的#,表示使用参数名。传递的参数将被当做字符串使用。

#define to_str(x) #x

当使用to_str(abcd)时,宏值为"abcd"

2) 使用##可以起到连接作用。

#define var(x) var_##x

当使用

int var(a)

等效定义

int var_a