我正在将一个游戏从Sega Genesis移植到Sega Saturn,并限制在C.我也在关注游戏如何在摩托罗拉68000汇编代码中编码尽可能接近,这需要许多相同结构的阵列.我说的是300以上.为了组织和可读性,用数字而不是字符串命名它们会更容易
例如,我更喜欢:
int 000[4] = {1, 2, 3, 4};
int 001[4] = {1, 2, 3, 4};
Run Code Online (Sandbox Code Playgroud)
相反:
int zerozerozero[4] = {1, 2, 3, 4};
int zerozeroone[4] = {1, 2, 3, 4};
Run Code Online (Sandbox Code Playgroud)
但是我的编译器不会编译,除非数组名称以字符开头.有没有办法做到这一点?我想我可以a
在阵列的前面抛出一个,但如果可能的话,我想避免这种情况.
unw*_*ind 72
这是一个非常奇怪的设计.
在人类意义上,一个数字实际上不是一个名字.没有人阅读代码将理解被称为数组的含义_031
.
您应该弄清楚所有这些数组的共同点,并使用具有描述性名称的单个多维数组.
而不是
int _001[4];
int _002[4];
...
int _300[4];
Run Code Online (Sandbox Code Playgroud)
你应该有类似的东西
int whatever[300][4];
Run Code Online (Sandbox Code Playgroud)
然后,无论您以前访问过哪个地方_002
,都可以访问whatever[1]
.更清洁.如果您愿意,可以添加一个并制作它301
并使用基于1的索引.
Edw*_*nch 31
这是不可能的,不.
但是,您可以使用任何有效字符(例如字母或下划线)开始变量名称,然后创建其余数字.
例如,而不是int 001[4]
你能做到的int _001[4]
.
对于那些只是阅读我的答案的人 - 请大家放松一下,在下面回答这对于人类阅读或可用性而言不是很好的设计.有关详细信息,请参阅并提出他的答案.
归档时间: |
|
查看次数: |
915 次 |
最近记录: |