宏定义

宏,其实就是查找替换文本的功能

全部替换

  1. #define name(A,B,C) A=B+C
  2. // 宏 查找名(替换名,替换名,替换名) 替换为目标格式
  3. //替换前
  4. name(x,y,z);
  5. //替换后
  6. X=Y+Z;

部分替换

:用来代替空格键,

如果一个单词的部分分替,则要用##隔开

  1. #define name(NewName,a) the_##NewName##func(int a)
  2. // 宏 查找名(替换名,替换名) 替换为目标格式
  3. //替换前
  4. name(X,B);
  5. //替换后
  6. the_Xfunc(int B);

范例

查找替换文本

  1. /*
  2. 替换前
  3. */
  4. #define newType int
  5. newType a;
  6. /*
  7. 替换后
  8. */
  9. int a;

定义函数

通过这种方法,可以定义一些类,函数、模板等等千奇百怪的用法 但需要注意,乱用宏会导致代码的可阅读性

  1. /*
  2. 替换前
  3. */
  4. #include <stdio.h>
  5. #define add(funName,a,b) \
  6. int funName##_function(int a, int b)\
  7. {\
  8. return a+b;\
  9. }
  10. add(NewName, x, y)
  11. /*
  12. 替换后
  13. */
  14. #include <stdio.h>
  15. int NewName_function(int a, int b)
  16. {
  17. return a+b;
  18. }