clang-format处理__PACKED_STRUCT宏时typedef换行问题及配置修复方法
解决clang-format对__PACKED_STRUCT宏的typedef格式问题
clang-format默认无法识别__PACKED_STRUCT是结构体定义的等价宏,因此会错误地将typedef名称移至结构体闭合大括号的下一行。通过修改.clang-format配置文件可以解决这个问题,有两种可行方案:
方案一:使用MacroBlockBegin配置
在.clang-format中添加以下配置,告诉clang-format将__PACKED_STRUCT视为结构体定义的起始块:
MacroBlockBegin: '__PACKED_STRUCT'
方案二:使用TypedefMacros配置
将__PACKED_STRUCT加入TypedefMacros列表,让clang-format识别它是用于typedef的结构体宏:
TypedefMacros: ['__PACKED_STRUCT']
配置示例
完整的.clang-format片段示例(基于LLVM风格):
Language: Cpp BasedOnStyle: LLVM MacroBlockBegin: '__PACKED_STRUCT'
配置生效后,带__PACKED_STRUCT的typedef结构体格式化后会保持预期格式:
typedef __PACKED_STRUCT nv_iis_VersionInfo_s { uint8_t versionMajor; uint8_t versionMinor; uint8_t versionRevision; } nv_iis_VersionInfo_t;
内容的提问来源于stack exchange,提问作者Zerovoid
相关产品推荐
相关产品推荐

