打印

关于宏定义的问题。

[复制链接]
1675|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
roc_qiu|  楼主 | 2011-2-10 13:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
实例代码如下:
#define TestDefine  Test1

#ifdef TestDefine == Test2

   for(i = 0; i < 10; i++)
  {
    ...
  }
#else
  for(i = 0; i < 10; i++)
  {
    ...
  }
#endif
按照原意就是希望进入第二个for语句。可是设断点在第二个for语句内部无法设置,直接跳到#endif后面了。
后更改为:
#if (TestDefine == Test2)
  for(i = 0; i < 10; i++)
  {
    ...
  }
#endif
#if (TestDefine == Test1)
  for(i = 0; i < 10; i++)
  {
    ...
  }
#endif
就可以实现进入第二个for语句了。
不知道是什么原因第一个无法进入第二个for 语句呢?
请高手赐教!谢谢先。
沙发
sdpz| | 2011-2-10 14:02 | 只看该作者
认真看看,第一个本来应该是#if,你写成#ifdef

使用特权

评论回复
板凳
roc_qiu|  楼主 | 2011-2-10 14:26 | 只看该作者
这个我试过的。改成#if也是无法在第二个for语句中设置断点。

使用特权

评论回复
地板
roc_qiu|  楼主 | 2011-2-10 16:12 | 只看该作者
正确的做法出来了。
应该是使用:#if (TestDefine == Test2)

   for(i = 0; i < 10; i++)
  {
    ...
  }
#else
  for(i = 0; i < 10; i++)
  {
    ...
  }
#endif
但为什么会出现我这样也不能设断点呢?原因是没有定义Test1和Test2。这样编译的时候根本就没有将#if #else #endif编译进去。也没有警告和错误显示。
增加定义Test1和Test2后,就可以正常设置断点了。呵呵!晕糊!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

52

主题

198

帖子

1

粉丝