【发布时间】:2016-04-29 01:04:18
【问题描述】:
我正在用 C 语言开发一个 Chip-8 仿真器,目标是让它尽可能跨平台并尽可能小,以便与嵌入式系统和低规格系统兼容(并挑战我自己),这意味着能够使用 SDL、ncurses(当我达到这一点时)和其他东西。因此,我一直在使用无符号字符来代替整数或无符号整数,并且我使用了“typedef unsigned char byte”以使其更方便。我是在浪费时间吗,即使是为了理想地使其与非常小的系统兼容,还是只使用“typedef unsigned int byte”就足够了而不牺牲性能?
【问题讨论】:
-
我不知道 Chip-8,但我在谷歌上看到的是 8 位的。假设 int 类型也有 1 个字节的大小和 char,则无所谓使用
typedef unsigned int或typedef unsigned char。它们具有相同的效果。 -
是的,Chip-8 是一种 8 位语言,但我关心的不是解释器/仿真器本身,而是主机系统。那么 int 的大小会随着它编译的系统而改变?
-
尝试打印 sizeof(int)。对于该目标,该编译器很可能是 1 个字节,这是 int 变量类型的一种想法,它取决于目标(比 char 或 long 更多)。
标签: c resources embedded memory-footprint