3945|3

73

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

关于宏定义的问题。 [复制链接]

实例代码如下:
#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 语句呢?
请高手赐教!谢谢先。
此帖出自stm32/stm8论坛

最新回复

                                 正确的做法出来了。 应该是使用:#if (TestDefine == Test2)    for(i = 0; i < 10; i++)   {     ...   } #else   for(i = 0; i < 10; i++)   {     ...   } #endif 但为什么会出现我这样也不能设断点呢?原因是没有定义Test1和Test2。这样编译的时候根本就没有将#if #else #endif编译进去。也没有警告和错误显示。 增加定义Test1和Test2后,就可以正常设置断点了。呵呵!晕糊!  详情 回复 发表于 2011-2-10 16:12
点赞 关注
 

回复
举报

61

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
                                 认真看看,第一个本来应该是#if,你写成#ifdef
此帖出自stm32/stm8论坛
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
                                 这个我试过的。改成#if也是无法在第二个for语句中设置断点。
此帖出自stm32/stm8论坛
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

4
 
正确的做法出来了。
应该是使用:#if (TestDefine == Test2)

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

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表