导航
  • 全部
...

#ifdef 的用法

red_bird 2003-02-06 11:55:11
#ifdef 应该怎样用,请举例说明,应该用在什么地方?
...全文
给本帖投票
18869 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
KwokLeung 2003-02-06
  • 打赏
  • 举报
回复
/*试举一个例子:
如果想编写一个既可用 TC 编译又可用 VC 编译的程序,但不同的编译器生成的可执行文件的功能不同时, #ifdef 就有用了.

下面这个程序,如果用 VC 编译,只会显示一句话; 但若用 TC 编译,既显示一句话,又把背景颜色改为蓝色。
这样做的原因是 VC 没有 textbackground() 这个函数, 为了不改变源程序而适应不同的编译器, 这种条件编译(conditional compilation)的方法比较有用.
另外,有些 Windows API 对操作系统的版本有要求,这时条件编译又可派上用场了.
*/

#include <stdio.h>
#include <conio.h>

#ifdef WIN32 /*使用 Visual C++ 6.0 作为编译器时, "WIN32" 自动被VC定义,*/
#define VC /*从而定义了"VC"*/
#endif

int main(void)
{
#ifdef VC /*如果 VC 被定义, 执行下面的代码*/
printf("This program was compiled by VC 6.0\n");

#else /*否则(即 VC 未被定义), 执行下面的代码*/
/*使用 Turbo C 作为编译器时执行*/
textbackground(BLUE); /*背景颜色改为蓝色*/
clrscr();
printf("This program was not compiled by VC 6.0\n");
#endif /*#ifdef VC*/

/*不论用何编译器, 以下代码都会被编译*/
printf("Hello, world");
getch();
return 0;
}
rivershan 2003-02-06
  • 打赏
  • 举报
回复
if define
去看C++书~
如果没有这一部分~
那就不是好的C++的书~
vs_net 2003-02-06
  • 打赏
  • 举报
回复
#ifdef MAX=100
.......
#elsedef
.......
#endif
zxl_lim 2003-02-06
  • 打赏
  • 举报
回复
#ifdef = #if define
从字面上就可以理解了
danceflash 2003-02-06
  • 打赏
  • 举报
回复
避免重复编译时经常使用这个指令
比如一个叫做 node.h 的头文件
#ifndef _node_h_001
#define _node_h_001

头文件内容......

#endif
hddhddhdd 2003-02-06
  • 打赏
  • 举报
回复
来晚了!
qhgary 2003-02-06
  • 打赏
  • 举报
回复
#ifdef 就是说if define,(如果定义了)
就像if else语句一样
rayhua 2003-02-06
  • 打赏
  • 举报
回复
如果你的程序由几个文件组成,而且有两个以上的文件都要包含同一个文件,为了避免重复包含同一个文件,所以在要被包含多次的文件中用#ifdef。

70,017

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧

手机看
关注公众号

关注公众号

客服 返回
顶部