宏定义是一种预处理指令,它用于在程序中定义一些常用的代码片段。带条件的宏定义允许根据特定的条件来定义宏,并根据条件的真假来执行不同的代码。这是一种在程序中进行编译时决策的方式。 在C语言中,使用#define指令来定义宏。宏定义可以包含条件语句,例如#if、#else和#endif,这样可以根据特定的条件来选择性地定义...
4)代码中的宏名如果被引号包围,那么预处理程序不对其作宏代替。 5)宏定义允许嵌套,在宏定义的字符串中可以使用已经定义的宏名,在宏展开时由预处理程序层层代换。例如: #definePI 3.1415926#defineS PI*y*y /* PI是已定义的宏名*/对语句: printf("%f", S); 在宏代换后变为: printf("%f",3.1415926*y...
宏定义的条件编译只能用于宏定义, 不能用于变量, 而且, 一旦宏定义满足其中一个条件, 那么就只会编译这一句代码, 而其他的条件就不会参与编译, 还有就是在写完条件编译之后, 一定一定要加上#endif, 否则就和main函数少了一个大括号一样, 会出错. 其他的用法, 比如: #if define A code; #endif 意思是, ...
在这个例子中,我们定义了一个名为“MY_MACRO”的条件宏。 二、条件宏的判断方法 条件宏的判断方法主要有两种: 1.使用“#ifdef”和“#endif”来进行条件判断。当“#ifdef”后面的宏名已经被定义时,编译器将编译“#ifdef”和“#endif”之间的代码。例如: ```c #ifdef MY_MACRO // 当 MY_MACRO 被定义时,...
条件编译指令在预编译期进行分支判断 可以通过命令行定义宏 gcc -Dmacro = value file.c 或者 gcc -Dmacro file.c 实验:通过命令行定义宏 //#include <stdio.h>intmain(){constchar*s;#ifdef Cs="This is first printf...\n";#elses="This is second printf...\n";#endif//printf("%s", s);...
一. 宏定义 #define PI 3.141592653 //无参宏 #define SUM(a,b) a + b //有参宏与函数不一样 1. 调用PI时等同于获取数字3.141592653 2. 调用SUM(a,b)时,仅仅只为a + b不为函数 二. 条件编译 #ifdef PI //#ifndef //#ifdef //#if 1 ...
1)文件包含 #include2)宏定义 #define3)条件编译 #if #endif4)防止头文件重复包含 2、文件包含处理 “文件包含处理”是指一个源文件可以将另外一个源文件的全部内容包含进来,C语言提供了#include命令用来实现“文件包含”的操作 3、#include< > 与 #include“ ”#include一般用于头文件的包含,头文件中...
(2)条件编译:预处理器根据#if和#ifdef等编译命令及其后的条件,把源程序中的某些部分包含进来或排除在外,通常把排除在外的语句转换成空行。 (3)宏展开:预处理器将源程序文件中出现的对宏的引用展开成相应的宏定义,经过预处理器处理的源程序与之前的源程序有所不同,在这个阶段所进行的工作只是纯粹的替换和展开,...
条件编译是通过预处理指令来实现的,可以使用`#ifdef/#endif`、`#ifndef/#endif`、`#if/#endif`等指令来进行条件判断。下面是一个使用`#ifdef`指令实现宏定...