我正在将一款游戏从 Sega Genesis 移植到 Sega Saturn,并且仅限于 C。我还尽可能地遵循 Motorola 68000 汇编代码对游戏进行编码的方式,这需要很多很多数组相同的结构。我说的是300或更多。为了组织和可读性,用数字而不是字符串命名会更容易
例如,我更喜欢:
int 000[4] = {1, 2, 3, 4};
int 001[4] = {1, 2, 3, 4};
相对于:
int zerozerozero[4] = {1, 2, 3, 4};
int zerozeroone[4] = {1, 2, 3, 4};
但是除非数组名称以字符开头,否则我的编译器不会编译。有没有办法做到这一点?我想我可以在数组的前面抛出一个 a
,但如果可能的话我想避免这种情况。
最佳答案
这是非常奇怪的设计。
从人类的意义上来说,数字实际上并不是一个名字。阅读代码的人不会理解名为 _031
的数组的含义。
您应该找出所有这些数组的共同点,并使用具有描述性名称的单个多维数组。
所以而不是
int _001[4];
int _002[4];
...
int _300[4];
你应该有类似的东西
int whatever[300][4];
然后,无论您以前在何处访问 _002
,您都只需访问 whatever[1]
。干净多了。如果您愿意,可以添加一个并将其设为 301
并使用基于 1 的索引。
关于c - 是否可以使用整数作为数组的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41370087/