在我的庫中,我必須返回一個字符串給調用者。我返回的字符串將是一個全局數組,調用者的預期用途是讀取字符串。我不想讓他們修改它..從C函數返回const char * *
這是聲明函數的正確方法..
const char * get_some_details();
這應該產生一個警告(只試過GCC)既可以當主叫用戶分配收益值賦給char * ptr或賦值給const char * ptr,但稍後嘗試修改它。
我問,因爲我希望喜歡的getenv()函數返回爲const char *。但它返回char *。返回const char *有沒有問題?
getenv返回char *,因爲返回的緩衝區指針不是常量。它包含了你的結果字符串調用getenv之後,但未來調用GETENV,SETENV是可以改變的是相同的緩衝器,或unsetenv – TJD
所以GETENV以下使用()是不正確的名稱= GETENV(「NAME」)?; ID = GETENV( 「ID」);使用名稱和編號。第二次調用getenv()可以覆蓋任何名稱指向之前 – Manohar