我是第一次遇到这种代码。我很难理解它。
#ifndef A
#define A
#endif
#ifndef B
#define B
#endif
void funct (structA* A paramA, structB* B paramB){};
参数中预处理器A和B的作用是什么?
最佳答案
对于:
#define A this_is_a
预处理器会将 A
替换为 this_is_a
。
对于:
#define A
预处理器会将 A
替换为空。
所以在您的示例代码中,A
和 B
符号只是被丢弃了。人们有时会使用这种技术来注释代码,例如:
#define IN
#define OUT
现在您可以注释函数参数以显示它们是“输入”参数还是“输出”参数:
void my_function(IN int i, OUT int& x) { ... }
关于c++ - 函数参数中的预处理器定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30475904/