19 个解决方案
#1
就跟if else语句效果一样啊。
#2
在学习宏定义的时候用到过,然后就再也没用过了……大致意思是控制头文件某些内容的范围吧?几乎没怎么用过,回答不了了……
等高手回答
等高手回答
#3
条件指示符#ifndef检查预编译常量在前面是否已经被定义.如果在前面没有被定义,
则条件指示符的值为真,于是从#inndef到#endif之间的所有语句都被包含进来进行处理.
相反,如果#inndef指示符的值为假,则它与#endif指示符之间的行将被忽略.
则条件指示符的值为真,于是从#inndef到#endif之间的所有语句都被包含进来进行处理.
相反,如果#inndef指示符的值为假,则它与#endif指示符之间的行将被忽略.
#4
作用1:防止重编译,功能与#pragma once一致
作用2:条件开关,只要定义一个宏就可以搞定不同版本了
其他作用:就是简单的宏替换或者达到开关的作用
作用2:条件开关,只要定义一个宏就可以搞定不同版本了
其他作用:就是简单的宏替换或者达到开关的作用
#5
一般用法是这样的:
这里可以定义如下:
#define XXXXX
#ifdef XXXXX
这里做一些操作,这些操作只有在XXXX已经被define的情况下才会执行到。一般还可能有else,如
#else
做另一些操作。。。
#endif
还有一些如ifndef什么的,可以找些资料看一下。
这里可以定义如下:
#define XXXXX
#ifdef XXXXX
这里做一些操作,这些操作只有在XXXX已经被define的情况下才会执行到。一般还可能有else,如
#else
做另一些操作。。。
#endif
还有一些如ifndef什么的,可以找些资料看一下。
#6
一般用于防止头文件重复引用
#ifndef xxx
#define xxx
#endif
#ifndef xxx
#define xxx
#endif
#7
#include "iostream.h"
int main()
{
#ifdef DEBUG
cout<< "Beginning execution of main()";
#endif
return 0;
}
//运行结果为:Press any key to continue
//改写代码如下:
#include "iostream.h"
#define DEBUG
int main()
{
#ifdef DEBUG
cout<< "Beginning execution of main()";
#endif
return 0;
}
//运行结果为:Beginning execution of main()
// Press any key to continue
通过使用#ifdef指示符,我们可以区隔一些与特定头文件、程序库和其他文件版本有关的代码
#8
预编译指令,编译器根据这些指令选择、跳过、忽略一些编译内容
#ifdef WIN32
.... codes for win32
#else
... codes for other
#endif
当编译上面代码前出现 #define WIN32,那么就是编译 .... codes for win32代码,否则编译 ... codes for other代码
#ifdef WIN32
.... codes for win32
#else
... codes for other
#endif
当编译上面代码前出现 #define WIN32,那么就是编译 .... codes for win32代码,否则编译 ... codes for other代码
#9
ls讲的 very good!
#10
了解了,效果跟IF ELSE差不多
#11
short135讲的很清楚啊、
值得学习
值得学习
#12
哦,条件编译
#13
学习了,不错的知识!
#14
学习。。。
#15
学习了。。。。
#16
呵呵 还是要实践
#17
学习了,和#if ……#endif语句有点区别 我一般用这种方法
#18
恩,确实,以前看过,不过忘记了,现在又重温一遍,很好
#19
#20
#1
就跟if else语句效果一样啊。
#2
在学习宏定义的时候用到过,然后就再也没用过了……大致意思是控制头文件某些内容的范围吧?几乎没怎么用过,回答不了了……
等高手回答
等高手回答
#3
条件指示符#ifndef检查预编译常量在前面是否已经被定义.如果在前面没有被定义,
则条件指示符的值为真,于是从#inndef到#endif之间的所有语句都被包含进来进行处理.
相反,如果#inndef指示符的值为假,则它与#endif指示符之间的行将被忽略.
则条件指示符的值为真,于是从#inndef到#endif之间的所有语句都被包含进来进行处理.
相反,如果#inndef指示符的值为假,则它与#endif指示符之间的行将被忽略.
#4
作用1:防止重编译,功能与#pragma once一致
作用2:条件开关,只要定义一个宏就可以搞定不同版本了
其他作用:就是简单的宏替换或者达到开关的作用
作用2:条件开关,只要定义一个宏就可以搞定不同版本了
其他作用:就是简单的宏替换或者达到开关的作用
#5
一般用法是这样的:
这里可以定义如下:
#define XXXXX
#ifdef XXXXX
这里做一些操作,这些操作只有在XXXX已经被define的情况下才会执行到。一般还可能有else,如
#else
做另一些操作。。。
#endif
还有一些如ifndef什么的,可以找些资料看一下。
这里可以定义如下:
#define XXXXX
#ifdef XXXXX
这里做一些操作,这些操作只有在XXXX已经被define的情况下才会执行到。一般还可能有else,如
#else
做另一些操作。。。
#endif
还有一些如ifndef什么的,可以找些资料看一下。
#6
一般用于防止头文件重复引用
#ifndef xxx
#define xxx
#endif
#ifndef xxx
#define xxx
#endif
#7
#include "iostream.h"
int main()
{
#ifdef DEBUG
cout<< "Beginning execution of main()";
#endif
return 0;
}
//运行结果为:Press any key to continue
//改写代码如下:
#include "iostream.h"
#define DEBUG
int main()
{
#ifdef DEBUG
cout<< "Beginning execution of main()";
#endif
return 0;
}
//运行结果为:Beginning execution of main()
// Press any key to continue
通过使用#ifdef指示符,我们可以区隔一些与特定头文件、程序库和其他文件版本有关的代码
#8
预编译指令,编译器根据这些指令选择、跳过、忽略一些编译内容
#ifdef WIN32
.... codes for win32
#else
... codes for other
#endif
当编译上面代码前出现 #define WIN32,那么就是编译 .... codes for win32代码,否则编译 ... codes for other代码
#ifdef WIN32
.... codes for win32
#else
... codes for other
#endif
当编译上面代码前出现 #define WIN32,那么就是编译 .... codes for win32代码,否则编译 ... codes for other代码
#9
ls讲的 very good!
#10
了解了,效果跟IF ELSE差不多
#11
short135讲的很清楚啊、
值得学习
值得学习
#12
哦,条件编译
#13
学习了,不错的知识!
#14
学习。。。
#15
学习了。。。。
#16
呵呵 还是要实践
#17
学习了,和#if ……#endif语句有点区别 我一般用这种方法
#18
恩,确实,以前看过,不过忘记了,现在又重温一遍,很好