是否可以使用整数作为数组的名称?

Mr.*_*Poe -4 c arrays naming

我正在将一个游戏从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的索引.

  • 可能没有速度优势,但很可能也没有任何惩罚.它真的更干净*.任何时候你有很多相似的东西,你应该使用一个数组.对不起,我不明白你的例子.如果你有一个索引到第一个数组的辅助数组,当然,它同样适用于所有300个数组. (16认同)

Edw*_*nch 31

这是不可能的,不.

但是,您可以使用任何有效字符(例如字母或下划线)开始变量名称,然后创建其余数字.

例如,而不是int 001[4]你能做到的int _001[4].

对于那些只是阅读我的答案的人 - 请大家放松一下,在下面回答这对于人类阅读或可用性而言不是很好的设计.有关详细信息,请参阅并提出他的答案.

  • @Potatobadger先生最好用一封信.就像干净,没有任何保留使用领先的`_underscore`的probs. (11认同)
  • 编辑评论与声誉无关.每个人都可以编辑他们的评论5分钟,然后就是这样.它们是一成不变的(直到你删除它们为止!) (7认同)
  • 下划线非常干净!因为在让它知道你能做到这一点之前,我非常喜欢在它之前打一封信. (2认同)