[英]How to write a function to replace #ifdef and #endif pair?
我在代码中#endif
使用#ifdef
和#endif
,例如:
#include<iostream>
#define __TEST____
int main()
{
std::cout<<"do something 1"<<std::endl;
#ifdef __TEST____
// a
// lot
// of
// test codes
#endif
return 0;
}
#ifdef
和#endif
对降低了代码的可读性。 如何编写函数来替换#ifdef
和#endif
对? 就像这个:
#include<iostream>
#define __TEST____
#define TEST(...) { #ifdef __TEST____ {__VA_ARGS__} #endif}
int main()
{
std::cout<<"do something 1"<<std::endl;
TEST(
// a
// lot
// of
// test codes
);
return 0;
}
在C ++(任何版本)中,您只需更改#ifdef
和#define
的顺序:
#ifdef __TEST__
# define TEST(...) { __VA_ARGS__ }
#else
# define TEST(...)
#endif
int main()
{
std::cout<<"do something 1"<<std::endl;
TEST(
// a
// lot
// of
// test codes
);
return 0;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.