嵌入式学习小组
直播中

闫颖慧

8年用户 176经验值
私信 关注

define DHT11_PIN 4 和int DHT1有什么区别?

#define DHT11_PIN 4 和int  DHT11_PIN =4;有啥区别啊?

回帖(8)

冯润生

2020-7-31 10:33:16
云汉达人
一个是宏定义,一个是定义的变量。用法上没什么区别,但是define相当于预置的语句,不可改变。
举报

杨晓健

2020-7-31 10:50:26
前面一个是给DHT11_PIN定义并赋值为4,这个变量全局定义都为4,就是说整个工程里面只要出现这个数据都是视为4
后面一个是定义了 DHT11_PIN 这个数据的类型为int,并且给这个数据赋值为4​,这个数据仅仅是局部变量,仅在当前的文件中有意义,在工程中别的文件中无意义
举报

周芸

2020-7-31 11:06:49
云汉达人


  • #define是宏定义的意思
  2. 宏定义是用宏名来表示一个字符串,在宏展开时又以该字符串取代宏名,这只是一种简单的代换,字符串中可以含任何字符,可以是常数,也可以是表达式,预处理程序对它不作任何检查。如有错误,只能在编译已被宏展开后的源程序时发现。
3.宏定义不是说明或语句,在行末不必加分号,如加上分号则连分号也一起置换。
4.宏定义其作用域为宏定义命令起到源程序结束。如要终止其作用域可使用#undef命令。
举报

李凤

2020-7-31 11:13:30
云汉达人 邀请回答

能用int的,我一般不用define
define用多了,调试时候出点错都找不到错在哪
举报

更多回帖

发帖
×
20
完善资料,
赚取积分