gpt4 book ai didi

c++ - 如何让预处理器在宏扩展结果中插入换行符?

转载 作者:可可西里 更新时间:2023-11-01 18:27:44 25 4
gpt4 key购买 nike

<分区>

使用 C/C++ 宏可以很容易地自动生成长结构。例如,如果我希望大量的方法永远不会抛出异常(这是公开 COM 的方法所必需的),我可以这样做:

#define BEGIN_COM_METHOD\
try{

#define END_COM_METHOD\
return S_OK;\
} catch( exception& ) {\
// set IErrorInfo here\
return E_FAIL;\
}

为了使此类宏易于管理,可以使用“\”字符使宏定义多行且更具可读性。

问题是有时具有此类结构的代码无法编译 - 有些东西不会按预期扩展,并且编译器会出现无效代码。编译器通常有“生成预处理文件”选项来向开发人员展示预处理结果。但在预处理文件中,宏被扩展为一行,结果几乎不可读。

是否可以让预处理器在宏定义中保留换行符?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com