#includeint amount[] = {1,5,10,25,50}; char *name[] = {"penny","nickel","dime","quarter","half-dollar"}; int search(int key,int a[],int len) { int ret = -1; int i; for( i=0; i -1 ) { printf("%sn",name[r]); } return 0; }
上述代码(因为两种割裂的数组)对计算机cache不友好;
#includeint amount[] = {1,5,10,25,50}; char *name[] = {"penny","nickel","dime","quarter","half-dollar"}; struct { int amount; char *name; } coins[] = { {1,"penny"}, {5,"nickel"}, {10,"dime"}, {25,"quarter"}, {50,"half-dollar"}, }; int main() { int k = 25; int i; for (i=0; i 使用gcc编译代码是报出
error: 'for' loop initial declarations are only allowed in C99 mode
note: use option -std=c99 or -std=gnu99 to compile your code
这是因为在gcc中直接在for循环中初始化了增量:
for(int i=0; i这语法在gcc中是错误的,必须先先定义i变量:
int i;
for(i=0;i这是因为gcc基于c89标准,换成C99标准就可以在for循环内定义i变量了:
gcc src.c -std=c99 -o src



