“Define”的版本间的差异
来自YFRobotwiki
(以“ <nowiki>#define</nowiki> is a useful C component that allows the programmer to give a name to a constant value before the program is compiled. Defined constants in ...”为内容创建页面) |
|||
第1行: | 第1行: | ||
− | + | '''#define'''是个有用的C组件,可以在程序编译前,给常量一个名词。被定义的常量不会占用Arduino芯片的内存。在编译时编译器会用事先定义的值来取代这些常量。<br> | |
− | |||
+ | 同样也会带来一些不利因素,举例来说,一旦常量被#define,将自动包含其他一些常量或者变量名。那样的话,这些代码将被替换成#define的数字。<br> | ||
− | |||
+ | 通常,关键字[http://wiki.dfrobot.com.cn/index.php/Const_(%E4%B8%8D%E5%8F%AF%E6%94%B9%E5%8F%98%E5%8F%98%E9%87%8F) const]常被用来取代#define来定义常量。<br> | ||
− | |||
− | |||
− | |||
− | |||
+ | Arduino宏定义与C宏定义有同样的语法:<br> | ||
<pre style="color:dimgray"> | <pre style="color:dimgray"> | ||
#define constantName value | #define constantName value | ||
</pre> | </pre> | ||
− | + | '''注意:"#"符号不可缺。'''<br> | |
第29行: | 第26行: | ||
<font color="orange" size="+1">'''提示'''</font> | <font color="orange" size="+1">'''提示'''</font> | ||
− | + | 在#define 声明后不能有分号。如果存在分号,编译器会抛出语义不明的错误。 | |
<pre style="color:dimgray"> | <pre style="color:dimgray"> | ||
第35行: | 第32行: | ||
</pre> | </pre> | ||
− | + | 类似的,在#define 声明中包含"="也会产生语义不明的编译错误。 | |
<pre style="color:dimgray"> | <pre style="color:dimgray"> |
2017年9月10日 (日) 15:47的最后版本
#define是个有用的C组件,可以在程序编译前,给常量一个名词。被定义的常量不会占用Arduino芯片的内存。在编译时编译器会用事先定义的值来取代这些常量。
同样也会带来一些不利因素,举例来说,一旦常量被#define,将自动包含其他一些常量或者变量名。那样的话,这些代码将被替换成#define的数字。
通常,关键字const常被用来取代#define来定义常量。
Arduino宏定义与C宏定义有同样的语法:
#define constantName value
注意:"#"符号不可缺。
示例
#define ledPin 3 // The compiler will replace any mention of ledPin with the value 3 at compile time.
提示
在#define 声明后不能有分号。如果存在分号,编译器会抛出语义不明的错误。
#define ledPin 3; // this is an error
类似的,在#define声明中包含"="也会产生语义不明的编译错误。
#define ledPin = 3 // this is also an error
更多建议和问题欢迎反馈至 YFRobot论坛