#define宏定义的用法遇到的问题

#define 这种宏定义的方法有许多中,用起来也极大的方便了用户对程序的理解,在***.h文件中需要通过#ifndef **** #define *** *** #endif的方式来避免重复编译的问题,这是在头文件定义的时候所碰到的问题;

在文件中也会遇到#ifndef *** #define *** 在这之后有时候会加一个数字,例如下面的语句

#ifndef LWIP_TCP_KEEPALIVE
#define LWIP_TCP_KEEPALIVE       0
#endif
通常这个时候就会疑问,为什么需要在后面添加一个零,这个零的具体作用又是什么呢?

通常宏定义是#define 宏名(形参表) 字符串,有时候定义时仅仅定义一个宏名称,像下面这样;

#ifndef LWIP_TCP_KEEPALIVE
#define LWIP_TCP_KEEPALIVE  
#endif
这样也是可以的,而在后面添加数字,如果仅仅是用在这里是没有意义的,但是这样定义是会在其他判断语句中起作用,比如说这里有一个条件判断语句,
#if LWIP_TCP_KEEPSLIVE
这个时候定义后面的数字就会起作用了,这也是宏定义的一个应用,在应用时应该细心观察,

另外宏定义还有许多复杂的功能,在今后的应用中可以多多留意,在后面学习中逐渐添加修改,

原文地址:https://www.cnblogs.com/longbiao831/p/4556274.html