私が取り組んでいるC SDLプロジェクトでは、わかりやすさのために ed char *
からstr
になりました。今GCCはなぜこの `-Wdiscarded-qualifiers`警告を出すのですか?
私は:
warning: return discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
私はchar *
にタイプを変更したときに警告がremoveedです:
const char *title = SDL_GetWindowTitle(win);
SDL_GetWindowTitle
が
const char *
を返し、私が手
const str title = SDL_GetWindowTitle(win);
typedefは型への単なるエイリアスです。したがって、変数をstr
またはchar *
と同じにする必要があります。その警告はどうして得られますか?それとも、私が逃した何かが...?
CLIでGCCを使用しているため、an IDE's faultではありません。
Thxで事前に!あなたのケースで
const str
const char *
が異なるタイプですので
"* CLIの* *"? – alk
もうひとつ、ポインタ型をtypedefしたくない素晴らしい例です。 – alk
_ "可読性のために" _ - 難しいですが、これはなぜかの大きなデモンストレーションです。より読みやすいとは言えますが、慣用コードの作成に慣れている経験豊富なユーザーはそうではありませんので、コードが奇妙で愚かに見えることに私は賭けています。 –