声明定义R-1-1-5强制

禁止重复定义宏

例外:

  • 不同编译条件中的定义
  • 删除后的再定义
重复定义宏
test.cpp
1#define FOO 1
2#define FOO 2
禁止重复定义宏 [gjb8114-r-1-1-5]
删除后重新定义的宏
test.cpp
1#define FOO 1
2#undef FOO
3#define FOO 2
#endif 之后的重复定义宏
test.cpp
1#define FOO 1
2#if !defined(FOO)
3#define FOO
4#endif
5
6#define FOO 2
禁止重复定义宏 [gjb8114-r-1-1-5]
不同条件分支中的重复定义宏
test.cpp
1#if 1
2#define FOO 1
3#else
4#define FOO 2
5#endif
重复执行的条件分支中的重复定义宏
test.cpp
1#if defined(PRESET_FOO)
2#define FOO 1
3#else
4#define FOO 0
5#endif
6
7#if defined(BAR)
8#define FOO 3
9#else
10#define FOO 4
禁止重复定义宏 [gjb8114-r-1-1-5]
11#endif