游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4844|回复: 5

问一个预处理语法问题

[复制链接]

2

主题

28

帖子

28

积分

注册会员

Rank: 2

积分
28
QQ
发表于 2003-10-15 15:24:00 | 显示全部楼层 |阅读模式
对不起,刚才写错了,修改修改~

读源代码时见过有这样的写法:

#if 0
...
#endif

或者

#if 1
...
#endif



#if 0
...
#else
...
#endif

不明白那个0跟1……到底什么意思呢?这些语句块到底在什么情况下会被编译呢? [em24]

1

主题

9

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2003-10-15 15:30:00 | 显示全部楼层

Re:问一个预处理语法问题

#ifdef 0
#define ggggg
#endif


结果: fatal error C1016: #if[n]def expected an identifier

查过msdn说:

Fatal Error C1016
#if[n]def expected an identifier

The #ifdef or #ifndef conditional compilation directive was not supplied with an identifier to evaluate.

An identifier must be specified with the #ifdef and #ifndef directives.

2

主题

28

帖子

28

积分

注册会员

Rank: 2

积分
28
QQ
 楼主| 发表于 2003-10-15 16:04:00 | 显示全部楼层

Re: Re:问一个预处理语法问题

我是菜鸟我怕谁: Re:问一个预处理语法问题

#ifdef 0
#define ggggg
#endif


结果: fatal error C1016: #if[n]def expected an identifier

查...



啊……对不起对不起。刚才手写惯了写成#ifdef了,实际是#if而已,不好意思……修改了修改了。 [em5]

1

主题

9

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2003-10-15 16:26:00 | 显示全部楼层

Re:问一个预处理语法问题

其实么,#if后面跟的是条件,如果跟1么,说明后面的代码一定执行或者预先编译,跟0么....你应该了解了吧

0

主题

63

帖子

63

积分

注册会员

Rank: 2

积分
63
发表于 2003-10-15 16:51:00 | 显示全部楼层

Re:问一个预处理语法问题

通常可以用来设置是否编译一大段的调试代码,有时比'/*','*/'好用多了。

2

主题

28

帖子

28

积分

注册会员

Rank: 2

积分
28
QQ
 楼主| 发表于 2003-10-15 19:09:00 | 显示全部楼层

Re:问一个预处理语法问题

意思就是1即永真,必然编译,而0则永假,不编译?哦……明白了,谢谢~

调试代码我也是习惯用#ifdef _M_DEBUG_这样的块来括起来,在VC的编译选项里写_M_DEBUG_,不知道原来就#if 1 #if 0也行,呵呵,受教了~=^-^=
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-5-15 11:44

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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