【发布时间】:2014-11-08 22:52:27
【问题描述】:
有点愚蠢的问题,但我无法解决这个问题。我想使用点符号来访问结构的成员变量,以使一些杂乱无章的代码尽可能整洁。我希望我不会因为不想以传统方式去做而被告知。我正在尝试这样做: 类型定义结构{ 诠释一个; 诠释 b; } 我的结构;
mystruct myStArray[5];
void doit (mystruct *i) {
// I want to do this:
i.a++;
i.b++;
// rather than this:
i->a++;
i->b++;
// or this
(*i).a++;
(*i).b++;
}
main () {
int x;
for (x=0;x<5;x++) {
doit(&myStArray[x]);
}
}
我试过这样做:
void doit (mystruct *u) {
mystruct i = *u;
但那确实有效。我知道它很简单,而且我以前也知道怎么做,但我生疏了,就是不记得/不知道怎么做。
【问题讨论】:
-
你可以去
#define i (*u),但我不会让它通过代码审查。 -
请不要尝试更改 C 的语法。C 语法使用
->来访问指向结构的指针字段,您也应该这样做。 -
Magnus,这个答案是最好的,但我不能选择它作为评论。我接受你们关于代码审查和语法的观点,但这只是我将看到的一些代码,它将作为汇编程序进一步重新设计,所以保持它的标准不是我关心的问题。感谢两者。