幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2579|回复: 3

[通用编程] 預處理程序命令

[复制链接]

313

主题

1574

帖子

1万

积分

⑧专业

*永恒国度*

积分
14145
QQ
发表于 2008-1-28 13:28:05 | 显示全部楼层 |阅读模式
#if      
#elif
#else
#endif
#ifdef
#ifndef
#undef

想問下這些預處理命令 有什麼特別?
#if      
#elif
#else
比如說這幾個,跟
if
else if
else
這些有什麼區別呢?
[img][/img] http://shop33698673.taobao.com被别人嫉妒,证明你优秀,嫉妒别人说明你无能
回复

使用道具 举报

4

主题

46

帖子

1559

积分

⑥精研

积分
1559
QQ
发表于 2008-1-28 13:35:36 | 显示全部楼层
预处理指令是在编译开始之前处理源代码**文本替换**的,一般来说就是通过判断这些条件来确定**是否要编译某一段代码**这样的功能,实现条件编译。

(换句话说,在最后生成的代码里是没有这些条件判断的。)

而在程序里的流程控制指令其作用则是在程序的运行时体现出来的,不是编译期。
整整两年之后的故地重游,幻森,I'm back~ 钻头直破天际,你,以为我们是谁!
回复 支持 反对

使用道具 举报

313

主题

1574

帖子

1万

积分

⑧专业

*永恒国度*

积分
14145
QQ
 楼主| 发表于 2008-1-28 13:58:46 | 显示全部楼层
在最后生成的代码里是没有这些条件判断的。 ???
這句話的意思是不是
比如:
#define  MAX 100
main()
{
        int i=1;
        printf("%d\\n",i);
        #if   MAX>99
        printf("100");
        #endif
}
這個程序相等於
main()
{
        int i=1;
        printf("%d\\n",i);
}
呢?
[img][/img] http://shop33698673.taobao.com被别人嫉妒,证明你优秀,嫉妒别人说明你无能
回复 支持 反对

使用道具 举报

4

主题

46

帖子

1559

积分

⑥精研

积分
1559
QQ
发表于 2008-1-28 15:48:52 | 显示全部楼层
因为max > 99成立,所以最后生成的代码是:

main()
{
        int i=1;
        printf("%d\\n",i);
        printf("100");
}
整整两年之后的故地重游,幻森,I'm back~ 钻头直破天际,你,以为我们是谁!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-4-30 08:55 , Processed in 0.020834 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表