下面的一段C代码在gcc 4.7下编译,在Debian上运行(用gcc -c filename.c
运行)
typedef int array_type[3];
int a[] = {1,2,3};
int* asd1(void){
return a;
}
array_type* asd2(void){
return &a;
}
而不是使用typedef
我想使用实际类型。但是,如果我将array_type*
替换为int*[3]
之类的内容,则无法编译。
我应该用array_type*
替换它,使其在语义上与上面相同并正确编译?