V2EX 10月11日 22:41
匿名结构体地址常量标识业务类型
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

文章介绍了在项目中使用匿名结构体地址作为常量标识不同业务类型的方法,以避免魔术数字,并通过指针比较实现逻辑判断。

在项目中,用匿名结构体的地址作为常量来标识不同业务类型(例如 A 、B 、C 、D……),

这样做的目的是彻底避免魔术数字( magic number ),并且希望在逻辑判断中直接通过指针比较。

代码 h 文件

typedef struct __BizType *BizTypeRef;// 对外暴露的常量声明extern const BizTypeRef kBizTypeA;extern const BizTypeRef kBizTypeB;extern const BizTypeRef kBizTypeC;extern const BizTypeRef kBizTypeD;

实现文件

// 定义结构体struct __BizType {    int value;};// 定义常量指针const BizTypeRef kBizTypeA = &(const struct __BizType){ .value = 1 };const BizTypeRef kBizTypeB = &(const struct __BizType){ .value = 2 };const BizTypeRef kBizTypeC = &(const struct __BizType){ .value = 3 };const BizTypeRef kBizTypeD = &(const struct __BizType){ .value = 4 };

使用

// 使用示例void handleBiz(BizTypeRef type) {    if (type == kBizTypeA) {        // 处理业务 A    } else if (type == kBizTypeB) {        // 处理业务 B    }}

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

业务类型标识 匿名结构体 指针比较 魔术数字 代码设计
相关文章