【发布时间】:2016-11-04 13:01:10
【问题描述】:
我大大减少了我的真实代码,以使其尽可能紧凑,以便发布。
我的问题是关于const 属性。当我编译这个...
const char tmp[] = "anything";
int main(int argc, char *argv[]) {
/* my code */
return 0;
}
char *somefunction (char *c) {
extern const char tmp[];
/* my code */
return tmp;
}
...我明白了:
警告:从指针目标类型返回丢弃 'const' 限定符 [默认启用]
代码运行良好。
somefunction 没有触及字符串tmp,那么为什么return 会产生这个警告呢?
如果我离开const,警告就会消失。
【问题讨论】:
-
因为返回类型是
char*而不是const char*。将char *somefunction (char *c)更改为const char *somefunction (char *c) -
工作...非常感谢!