#if和#elif指令 #if指令和if很像,#if后面跟整型常量表达式,如果表达式非零,则表达式为真,此外可以按照if else的形式使用#elif 如:#if还有一种用法可以代替#ifdef,即#if defined (VAR)代替#ifdef VAR #defined是一个预处理运算符(注意不要和#define搞混),如果它的参数是用#define定义过的,返回1,否则...
#if指令和if很像,#if后面跟整型常量表达式,如果表达式非零,则表达式为真,此外可以按照if else的形式使用#elif 如: #if还有一种用法可以代替#ifdef,即#if defined (VAR)代替#ifdef VAR #defined是一个预处理运算符(注意不要和#define搞混),如果它的参数是用#define定义过的,返回1,否则返回0,这种方法还可以和...
在C语言中,若要对程序中的代码段有条件地进行编译,就要用到条件编译命令,条件编译主要有如下几种格式: if格式 #if 表达式 语句序列① [#else 语句序列②] #endif 1. 2. 3. 4. 5. 功能:当表达式的值为真时,编译语句序列①,否则编译语句序列②。其中,#else和语句序列②可有可无。 ifdef格式 #ifdef 标识...
//为假的时候执行 int data=666; #endif */#defineB1//定义一个标识符 B1#undefB1//取消标识符B1定义#ifdefB1//为真的时候执行int data=123;#else//为假的时候执行int data=666;#endif intmain(int argc,char*argv[]){printf("data=%d\n",data);return0;}#endif #include<stdio.h>#defineA3#if...
预处理的意思就是不会写入程序,是一开始就根据预处理的分支进行逻辑操作,不满足条件的东西不会写入程序,这样的好处是省去无用的代码。 voidpreDo(){#defineVAR_0 123#defineVAR_2 44printf(" define value VAR_0:%d\n",VAR_0);charstr[]="hello";#defineVAR_1 strprintf("VAR_1 %s \n ",VAR_1);...
在C语言中,若要对程序中的代码段有条件地进行编译,就要用到条件编译命令,条件编译主要有如下几种格式: if格式 #if 表达式语句序列①[#else语句序列②]#endif 功能:当表达式的值为真时,编译语句序列①,否则编译语句序列②。其中,#else和语句序列②可有可无。
#define PRINT_DATA(x) if(x){printf("为真.\n");} \ else {printf("为假.\n");} int main(int argc,char **argv) { printf("%s\n",STR_DATA); printf("%d\n",INT_DATA); PRINT_DATA(1); PRINT_DATA(0); return 0; } 2.2 宏替换的高级用法:#(字符串常量替换符号) ...
C语言合法标识符规则如下:1 由数字,字母,下划线组成;2 不能由数字开头。即第一个字符只能是字母或下划线。3 区分大小写。4 不可与系统关键字相同。define和if都是C语言的关键字,不符合第4条,所以不能称为用户标识符。其中,define是宏定义的关键字,而if的判断语句的关键字。
1#ifdef __cplusplus2#define NULL 03#else4#define NULL ((void*)0)5#endif C++ 中的 0 是类型自动的,所以用 0 定义 NULL;而 C 中 0 是确定的 int 类型,所以需要强制 C++ 中,当 NULL 的相关操作数,如:对比操作 ptr == NULL,或函数的形参是指针类型时,或者能够“从指针类型隐式转换”时,0 被自...
并且不能以数字开头。此外,用户标识符不能与C语言的关键字相同,如if、int等。定义用户标识符时,建议使用有意义的名称,以便于代码的可读性和维护。总之,#define用于宏定义,if用于条件判断,而用户标识符则是通过类型名定义的变量或函数名称,它们各自有明确的用途和定义规则。