1. ホーム
  2. C

警告:代入がキャストなしで整数からポインタを作成する場合の修正方法に関する警告

2022-01-24 03:44:27

警告を修正する方法についての警告: 代入はキャストせずに整数からポインタを作成します。

原理:ソースファイルに関数宣言がない。おそらくヘッダーファイルの追加を忘れたため。(未宣言の関数プロトタイプは常にデフォルトでint値を返します)。

この文は重要です。例えば、CSDNで以下のような質問があります。

http://topic.csdn.net/u/20080624/14/13953e05-da05-4598-a73e-8d81778599d1.html#r_achor

コードのスニペットを書きました。

関数の原形は、char *cfg_get(const char *name)です。

main()内で上記の関数を呼び出す方法は、以下の通りです。

  char *dev_IMEI = cfg_get((char *)"dm_imei");

しかし、この呼び出しは次のように暖めながらコンパイルします。

警告: 代入はキャストなしで整数からポインタを作成します。

なぜこのような暖機があるのか、どうすれば暖機が起きないように変更できるのか。

ここで解決すべき方法です char *dev_IMEI = (char *)cfg_get((char *)"dm_imei");


説明します。ここでは、cfg_get は上記の原則に従って plastic を返しますが、代入は char * であるため、強制的に変換を下げる必要があります。同じ意味で、異なる型は異なる変換で強制することができます。


https://blog.csdn.net/backgarden_straw/article/details/7987665 より取得