在我的库中,我必须返回一个字符串给调用者。我返回的字符串将是一个全局数组,调用者的预期用途是读取字符串。我不想让他们修改它..从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