是否有可能这种不匹配会对内存分配造成严重破坏?
哦,是的.
如何在ARM上强制枚举为4字节大?
C标准表示枚举变量可能具有任何几乎任何整数类型,大小和签名是实现定义的.因此,枚举通常是有问题的,特别是在嵌入式系统中.这是C语言的一个已知缺陷.
您可以强制enum具有特定编译器的特定大小,但这只是一个快速而肮脏的修复.
专业的长期解决方案是重写所有代码,以便在任何地方都不依赖于枚举的大小或签名.
| 归档时间: |
|
| 查看次数: |
587 次 |
| 最近记录: |