01 作用域
预编译作用域限本文全局,如:
a.c中定义:#define TEST 1
b.c中定义:#define TEST 2
两者编译不交叉,互不影响。
若需#define TEST作用于a.c、b.c,可在a.c、b.c所添加的test.h中加入“#define TEST”。
02 一般用法
#define PRINT printf("hello world") #define P(s) printf("%d", s) #define MULT(a,b) a * b #define MULT(a,b) ((a) * (b))
03 宏控
#ifndef TEST ...... #else ...... #endif ; #if defined(TEST) ...... #else ...... #endif