功能使用上差不多的。
#define 是宏定义。即DHT11_PIN 的值为4;这个值是不能更改的。是个常量
在编译之前,对文件进行预处理,将所以的DHT11_PIN替换成4;
define的用法:http://blog.chinaunix.net/uid-17188120-id-4026378.html
int,是定义了一个int型的变量,这个变量值是带符号 的4,但是这个变量是可以更改的。更改成多少都可以,只要在int的范围内。
前面一个是给DHT11_PIN定义并赋值为4,这个变量全局定义都为4,就是说整个工程里面只要出现这个数据都是视为4
后面一个是定义了 DHT11_PIN 这个数据的类型为int,并且给这个数据赋值为4,这个数据仅仅是局部变量,仅在当前的文件中有意义,在工程中别的文件中无意义
#define是宏定义的意思
2. 宏定义是用宏名来表示一个字符串,在宏展开时又以该字符串取代宏名,这只是一种简单的代换,字符串中可以含任何字符,可以是常数,也可以是表达式,预处理程序对它不作任何检查。如有错误,只能在编译已被宏展开后的源程序时发现。
3.宏定义不是说明或语句,在行末不必加分号,如加上分号则连分号也一起置换。
4.宏定义其作用域为宏定义命令起到源程序结束。如要终止其作用域可使用#undef命令。
能用int的,我一般不用define
define用多了,调试时候出点错都找不到错在哪
這段Code來說,效果是一樣的
指是#define為precomplie就會安插到引用他的地方取代,而int用法會占用Memory空間,
尤其是當作const來使用時候,都會放在global的地方,#define跟int都可改動但前者不需要額外Memory空間
因此#define是較好的用法
以上供參考