所以,我試圖創建一個很好可讀的C
函數原型,它返回給我一個字符串數組(即char*
)。我可以想出最接近的是一樣的東西:原型C函數返回字符串數組
const char * const *entrypoints()
{
static const char* arrays[] = {"test123", "test2"};
return arrays;
}
然而
,我沒有在聲明中希望兩個*
S,它看起來嚇人:) ...但我沒有找到一個方法來強調函數返回一個字符串數組的事實...在函數聲明中使用[]會導致有趣的編譯錯誤(例如'入口點'聲明爲返回數組const char* (entrypoints() [])
的數組或在'['代幣爲const char[]* entrypoints()
或const char*[] entrypoints()
...是的,編譯器在這兩種情況下都是正確的),谷歌似乎沒有回答這個...所以我在這裏。
有沒有辦法在一個很好的可讀的方式聲明函數原型(這將大大公共API中),將返回C字符串數組。不是C++。 C。如果沒有,我將不得不堅持兩顆星的方法...即。 char **
。並不是說這是一個(模糊)尷尬的東西,但我想強調該函數返回一個字符串數組。如字符串:)
你不能在C(返回數組類型*「該函數聲明不得指定返回類型,它是一個功能類型或數組類型「*),所以它絕對是雙星時間。 – Jon 2013-05-02 12:15:58
您如何期望調用者知道陣列中有多少個字符串?你需要一個哨兵或計數。 – unwind 2013-05-02 12:17:40
@unwind偉大的問題!我想我必須考慮它......哨兵感覺更友好:) – fritzone 2013-05-02 12:21:02