首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C18编译器类型定义枚举数据大小

C18编译器类型定义枚举数据大小
EN

Stack Overflow用户
提问于 2009-08-05 12:54:59
回答 2查看 1.9K关注 0票数 1

我正在尝试使用Microchip的C18编译器为PIC微控制器移植代码进行编译。代码包括分配了较大值(>8位)的枚举。它们不能正常工作,例如,0x02与0x2002相同。

如何强制将枚举值引用为16位值?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-09-02 12:51:22

我找到问题了。

为了便于将来参考,C18编译器在执行数学运算时不会提升变量或常量,即使它是ANSI标准。这是为了在8位处理器上运行时提高速度。

要强制遵从ANSI,请使用"-Oi“编译器选项。

See page 92 of the C18 manual.

票数 1
EN

Stack Overflow用户

发布于 2009-08-05 13:19:20

在DirectX标头中,每个枚举都有一个FORCE_DWORD值,其值为0xffffffff。我猜这基本上就是你想要的,它迫使编译器让枚举至少有32位。因此,尝试添加一个值为0xffffFORCE_WORD

当然,如果编译器不支持大于8位的枚举,那么这不会解决您的问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1233074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档