OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3472|回复: 10

ifdef else endif

[复制链接]

24

主题

93

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
212
金钱
212
注册时间
2016-1-15
在线时间
64 小时
发表于 2017-2-14 16:24:43 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 Anthony_brave 于 2017-2-14 16:26 编辑

#ifdef  XXXX
   程序段1
#else
   程序段2
#endif
   程序段3
else
   程序段4


这样写,假设定义了XXXX,那么先运行程序段1,再运行程序段3.            假设没定义XXXX,那么先运行程序段2,再运行程序段3.

这样  程序段4一直没用,对不对?

最佳答案

查看完整内容[请看2#楼]

#if和else是对不上的。你这代码,必定会报错。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2017-2-14 16:24:44 | 显示全部楼层
#if和else是对不上的。你这代码,必定会报错。
回复

使用道具 举报

3

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
158
金钱
158
注册时间
2014-11-14
在线时间
38 小时
发表于 2017-2-14 16:40:02 | 显示全部楼层
没有if,只有else,会不会报错哦?
回复

使用道具 举报

4

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
93
金钱
93
注册时间
2017-1-10
在线时间
28 小时
发表于 2017-2-14 17:00:02 | 显示全部楼层
#endif 要写在最后吧
回复

使用道具 举报

15

主题

98

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
294
金钱
294
注册时间
2015-11-30
在线时间
39 小时
发表于 2017-2-14 17:24:40 | 显示全部楼层
会报错,最后一个else前没有对应的if
回复

使用道具 举报

30

主题

1170

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
金钱
1993
注册时间
2016-2-16
在线时间
527 小时
发表于 2017-2-14 17:50:52 | 显示全部楼层
楼主同学,你是预编译没弄明白,前面有井号的是预编译时候的,没井号的是编译运行时候的。
你去百度预编译好好 看一下
回复

使用道具 举报

24

主题

93

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
212
金钱
212
注册时间
2016-1-15
在线时间
64 小时
 楼主| 发表于 2017-2-15 12:58:26 | 显示全部楼层
本帖最后由 Anthony_brave 于 2017-2-15 13:01 编辑
正点原子 发表于 2017-2-14 16:24
#if和else是对不上的。你这代码,必定会报错。

我又仔细看了看代码  是这样的

#ifdef  XXXX
   if(程序段1)
#else
   if(程序段2)
#endif
   {程序段3}
else
   {程序段4}

如果定义了XXXX,那么运行程序段1,如果程序段1为真,则运行程序段3,如果程序段1为假,则运行程序段4;如果没有定义XXXX,那么运行程序段2,如果程序段2为真,则运行程序段3,如果程序段2为假,则运行程序段4。这样是不是就对了?
回复

使用道具 举报

8

主题

156

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1553
金钱
1553
注册时间
2016-11-21
在线时间
411 小时
发表于 2017-2-15 20:19:55 | 显示全部楼层
Anthony_brave 发表于 2017-2-15 12:58
我又仔细看了看代码  是这样的

#ifdef  XXXX

对!~~~~~
回复

使用道具 举报

30

主题

1170

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
金钱
1993
注册时间
2016-2-16
在线时间
527 小时
发表于 2017-2-15 20:33:38 来自手机 | 显示全部楼层
Anthony_brave 发表于 2017-2-15 12:58
我又仔细看了看代码  是这样的

#ifdef  XXXX

别听楼上误人子弟,是编译,是编译,不是运行,楼主看下什么叫预编译。
回复

使用道具 举报

8

主题

156

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1553
金钱
1553
注册时间
2016-11-21
在线时间
411 小时
发表于 2017-2-18 21:43:30 | 显示全部楼层
憨厚诚实大叔 发表于 2017-2-15 20:33
别听楼上误人子弟,是编译,是编译,不是运行,楼主看下什么叫预编译。

请问是在说我误人子弟吗?小哥哥你有看懂他要表达啥吗?
回复

使用道具 举报

30

主题

1170

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
金钱
1993
注册时间
2016-2-16
在线时间
527 小时
发表于 2017-2-19 13:01:17 | 显示全部楼层
msq001 发表于 2017-2-18 21:43
请问是在说我误人子弟吗?小哥哥你有看懂他要表达啥吗?

看清楚了,不过编译和运行是不一样的。虽然说得没错,但是楼主不一定理解得对。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 17:44

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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