在一个数组/结构/联合中读取多个数字/字符串的最佳方法是什么,它本身嵌套在一个或多个父数组/结构/联合中?
第一个没有临时变量的例子:
printf("%d %d\n", a[9][3], a[9][4]);
第一个带有临时变量的示例:
int *b = a[9];
printf("%d %d\n", b[3], b[4]);
我敢肯定,上面第一个示例中的临时变量非常愚蠢,但在下面的第二个示例中,它是有意义的,并且看起来更好用,对吧?
第二个没有临时变量的例子:
foo[i]->bar.red[j][0]++;
foo[i]->bar.red[j][1]++;
foo[i]->bar.red[j][2]++;
foo[i]->bar.red[j][3]++;
带有临时变量的第二个示例:
int *p = foo[i]->bar.red[j];
p[0]++;
p[1]++;
p[2]++;
p[3]++;
那么你在哪里画线?我意识到编译器足够聪明,可以插入以这种方式产生最佳效率的程序集所需的任何间接,但是(假设假设对性能至关重要的代码)也许有例外?从代码清晰度/可维护性的角度来看,如果有的话,您的经验法则是什么?