簡體   English   中英

函數返回指向C中數組類型的指針

[英]function return pointer to array type in C

以下C代碼在Debian上在gcc 4.7下編譯(使用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而是使用實際的類型。 但是,如果我用int*[3]之類的東西替換array_type* ,它將無法編譯。

我應該用什么替換array_type*以使其在語義上與上述相同並且可以正確編譯?

int (*asd2(void))[3]{
    return &a;
}

請參閱cdecl

嘗試這個:

int (*asd2(void))[3]{
     return &a;
}

也許看看這個
並且如此處所述您不應使用此類typedef語句。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM