ClickHouse源码阅读笔记
文章目录
C++中宏定义的使用
代码如下(示例):
#define animal(M)\
M(dog)\
M(pig)\
M(cat)\
M(dinosaur)\
M(tortoise)
enum class zoo
{
#define M(str) str, //生成一个 dog,pig,cat,dinosaur,tortoise 的枚举类
animal(M)
#undef M
};
const char* zooname(zoo name)
{
switch (name)
{
#define M(str) case zoo::str : return #str; //利用switch case 生成判断是哪个枚举只,并返回名称
animal(M)
#undef M
}
}
int main(int argc_, char** argv_)
{
std::cout << "结果输出"<< std::endl;
zoo x = zoo::dinosaur;
const char* strname= zooname(x);
std::cout << strname << std::endl;
}
输出:
结果输出
dinosaur
总结
宏定义的使用