这个问题已经死了,我同意枚举是可行的方法。但是,我很好奇枚举是如何在最终代码中编译的——#defines 只是字符串替换,但是枚举是否会向编译后的二进制文件添加任何内容?或者他们在那个阶段都是等价的。当编写固件和内存非常有限时,使用#defines 有什么优势吗?
谢谢!
编辑:根据下面评论的要求,嵌入式是指数码相机。
感谢您的回答!我完全支持枚举!
最佳答案
两者都是标准术语中的常量表达式,因此它们“应该”在编译时由任何理智的编译器进行全面评估。恶意的病态编译器会生成不同的代码。
关于c - #define vs 嵌入式环境中的枚举(它们如何编译?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4637990/