#ifndef MACRO
    statement...
#else
    statement...
#endif
1.1、#ifndef MACRO的作用

检测MACRO是否已经被定义了。

1.2、#ifndef MACRO的语法

单分支:

#ifndef MACRO
    //some code
#endif

双分支:

#ifndef MACRO
    //some code
#else
    //some code
#endif
1.3、#ifndef MACRO的使用示例
#ifndef XX_H
#define XX_H
#endif

为了防止重复定义

#ifndef XX_H
#define XX_H

void urlEncode(unsigned char* bytes, char* encodeUrl)

#endif

为了防止重复include一个文件中的内容。

1.4、#ifndef MACRO & #if !defined (MACRO)

#ifndef MACRO#if !defined (MACRO)等价。

#ifndef MACRO只能判断一个,而#if !defined (MACRO1) && defined (MACRO2)却可以判断多个