打印
[STM8]

关于 #define 用法问题

[复制链接]
1821|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
KuMo_2011|  楼主 | 2014-6-11 10:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
说道 #define 我只知道它是宏定义
我在课堂上只学过 #define pi 3.14这种用法 就是把pi替换成3.14
然而在学习 stm8有关程序是发现#defined还有  #define STM8S105 这种用法
向大家请教一下,这是什么用法,作用、意义又是什么呢?
沙发
ticomi| | 2014-6-11 11:13 | 只看该作者
就是宏定义,#define STM8S105 就是定义了这个,如果在编译的时候判断是否定义了这个就可以确定是否需要编译与之相对应的代码,很适合多MCU平台的编译工作!

使用特权

评论回复
板凳
mmuuss586| | 2014-6-11 11:16 | 只看该作者

楼上正解

使用特权

评论回复
地板
KuMo_2011|  楼主 | 2014-6-11 13:27 | 只看该作者
ticomi 发表于 2014-6-11 11:13
就是宏定义,#define STM8S105 就是定义了这个,如果在编译的时候判断是否定义了这个就可以确定是否需要编 ...

那“#define STM8S105” 和 “#define pi 3.14”的用法是不是不一样
C语言只学了些皮毛,不太明白#defined的用法
我以前一直认为他的作用类似替换,就如“#define pi 3.14”
“#define STM8S105”的用法不是替换吧?
求指教,谢谢:)

使用特权

评论回复
5
KuMo_2011|  楼主 | 2014-6-11 13:28 | 只看该作者
mmuuss586 发表于 2014-6-11 11:16
楼上正解

那“#define STM8S105” 和 “#define pi 3.14”的用法是不是不一样
C语言只学了些皮毛,不太明白#defined的用法
我以前一直认为他的作用类似替换,就如“#define pi 3.14”
“#define STM8S105”的用法不是替换吧?
求指教,谢谢:)

使用特权

评论回复
6
mmuuss586| | 2014-6-11 13:48 | 只看该作者
#define pi 3.14:3.14可以用PI替换,程序里面用到3,14的地方,用PI就可以了;

#define STM8S105:定义了STM8S105

使用特权

评论回复
7
ticomi| | 2014-6-11 13:55 | 只看该作者
KuMo_2011 发表于 2014-6-11 13:28
那“#define STM8S105” 和 “#define pi 3.14”的用法是不是不一样
C语言只学了些皮毛,不太明白#defined ...

建议你看下C方面的书籍,这个不是一下子可以说明白的。重点看下编译方面的就会理解的快一些的。
#define PI 3.14,要写成#define PI (3.14),这样比较合理的。

#define STM8S105 是定义了STM8S105 如果遇到#ifndef STM8S105是就会为假,因为已经定义了,这用于编译阶段而不是执行阶段。

使用特权

评论回复
8
KuMo_2011|  楼主 | 2014-6-11 15:19 | 只看该作者
ticomi 发表于 2014-6-11 13:55
建议你看下C方面的书籍,这个不是一下子可以说明白的。重点看下编译方面的就会理解的快一些的。
#define  ...

豁然开朗,解释的恰到好处。谢啦:)

使用特权

评论回复
9
KuMo_2011|  楼主 | 2014-6-11 15:19 | 只看该作者
mmuuss586 发表于 2014-6-11 13:48
#define pi 3.14:3.14可以用PI替换,程序里面用到3,14的地方,用PI就可以了;

#define STM8S105:定义了S ...

明白了,谢谢:)

使用特权

评论回复
10
江枫渔火| | 2014-6-11 20:29 | 只看该作者
是一样的意思,只不过定义了某某为空。为空也可以替换。但空值的宏定义一般是用来判断定义了没定义,而不是定义了什么。

使用特权

评论回复
11
KC_CEC| | 2014-6-12 09:46 | 只看该作者
用define我习惯多用括号,这样不会逻辑混乱

使用特权

评论回复
12
广轻电气091| | 2014-7-7 10:31 | 只看该作者
KC_CEC 发表于 2014-6-12 09:46
用define我习惯多用括号,这样不会逻辑混乱

这个习惯不错

使用特权

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

本版积分规则

45

主题

494

帖子

2

粉丝