c - #define vs 嵌入式环境中的枚举(它们如何编译?)

标签 c enums embedded firmware

这个问题已经死了,我同意枚举是可行的方法。但是,我很好奇枚举是如何在最终代码中编译的——#defines 只是字符串替换,但是枚举是否会向编译后的二进制文件添加任何内容?或者他们在那个阶段都是等价的。当编写固件和内存非常有限时,使用#defines 有什么优势吗?

谢谢!

编辑:根据下面评论的要求,嵌入式是指数码相机。

感谢您的回答!我完全支持枚举!

最佳答案

两者都是标准术语中的常量表达式,因此它们“应该”在编译时由任何理智的编译器进行全面评估。恶意的病态编译器会生成不同的代码。

关于c - #define vs 嵌入式环境中的枚举(它们如何编译?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4637990/

相关文章:

c - 写入h_addr_list

c - 如何使用 PAM 功能模块将功能授予特定用户和可执行文件?

swift - 枚举返回对象(NSError)

c++ - 为什么编译器声称此类方法没有返回值?

c - 全局变量被破坏

c - 有没有办法避免多个类似函数中的代码重复?

c - 操作在 C 中可能未定义

java - 为什么 Java 类库仍然使用 String 常量代替枚举

c - 使用 UDRE 和 ATmega328P 的中断驱动 USART

在C中的两个while循环中比较来自两个文件的字符串