Define、#if Defined、#ifndef理解

if define、#if defined、#ifndef

类型:C语言宏定义

解决问题

因为对于一个大程序而言,我们可能要定义很多常量( 不管是放在源文件还是头文件 ),那么我们有时考虑定义某个常量时,我们就必须返回检查原来此常量是否定义,但这样做很麻烦

例子

取消定义,重新定义

1
2
3
4
# if defined a //#if defined (a)
# undef a
# define a 200
# endif

没有定义,那么定义

1
2
3
# ifndef a //如果a没有被定义
# define a 100
# endif

作用

1.防止重复include文件

1
2
3
4
5
一般.h文件里最外层的
# if !defined XXX_XXX
# define XXX_XXX
# endif
是为了防止这个.h头文件被重复include。

其他

1.#ifdef 和 #if defined 的区别