私は実際のコードを大幅に減らして、この投稿に対して可能な限りコンパクトにしました。const属性に関する関数の復帰に関する警告
私の質問は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' 修飾子[デフォルトで有効になって]
コードは正常に動作します。
は文字列tmp
に触れなかったので、return
はなぜこの警告を生成しますか?
私がconst
のままにすると、警告が消えます。
戻り値の型は 'char *'であり、 'const char *'ではないためです。 'char * somefunction(char * c)'を 'const char * somefunction(char * c)'に変更してください –
多くの感謝! – geohei