請忽略該帖子的主題,因爲它可能聽起來像別的東西,而不是我在這裏實際詢問的東西。基於解析的整數代碼檢索字符串的最佳方法?
我想打一個C函數應該找回我一個具體的整數代碼的簽名將是一件很簡單的像關聯的字符串值:
char *Get_Msg (int code, char *errorInfoTable[][2]);
所以,我需要的字符串,以及相關的代碼第一存儲因爲我不能把多個數據類型的數組,我最終也存儲碼串的條款:
char *errorInfo[][2] = {
/* Error Code Error Message
* ---------- ------------- */
{ "0", "No error" },
{ "93", "Error in processing" },
{ "-32700", "PARSE_ERROR" },
{ "-32600", "INVALID_REQUEST " },
};
然後,我可能只是閱讀此表中的函數這反過來應該返回我的關聯字符串。首先,是在該函數本身內定義該表還是作爲該文件中的全局變量的一種好方法。但是如果我希望將此功能存儲在單獨的C文件中並從其他文件中調用它,該怎麼辦?我發現如果我把這個文件聲明爲一個全局變量,我需要在主文件和函數中聲明一個extern爲char * errorInfoTable [] [2],然後在函數中解析。我想讓代碼計算解析表本身的行數。如果我嘗試計算具有Get_Msg函數的行數,這似乎不起作用,因爲函數無法從形式參數char * errorInfoTable [] [2]中看到它。我可以通過提及形式參數中的行數或者在函數中傳遞行數來做到這一點,但我不想在任何地方顯式計算行數。我想以這樣的方式設計它,程序員只需添加/刪除表中的行數,並且不應該觸及程序中任何其他地方的任何維度。
是否有任何其他方式來存儲和檢索此表中的字符串?或者其他更好的方法來實現這個功能?
可以使結構數組......其成員可以是不同的數據類型。 .. – StoryTeller
創建一個結構,而不是 –