从C中的函数返回const char*

Man*_*har 3 c api gcc const

在我的库中,我必须将一个字符串返回给调用者.我返回的字符串将是一个全局数组,调用者的用途就是读取字符串.我不希望他们修改它..

这是声明函数的正确方法吗?

const char * get_some_details();
Run Code Online (Sandbox Code Playgroud)

这应该在调用者将返回值赋给char*ptr或分配给const char*ptr时生成警告(仅尝试gcc),但稍后会尝试修改它.

我问,因为我希望像getenv()这样的函数返回const char*.但它返回char*.返回const char*有没有问题?

NPE*_*NPE 6

const char*在这些情况下,回归是正确的做法.

许多较旧的API不使用,const因为它们早const于C90 的引入(const之前没有).