2016-04-04 5 views
-1

私が取り組んでいるCプロジェクトでは、かなり無害なreturn NULL;文があります。Xcodeに関連するコンパイル警告を生成するCプログラムで、使用していないにもかかわらず、

warning: incompatible pointer to integer conversion returning 'void *' from a function with result type 'int' [-Wint-conversion] 
    return NULL; 
      ^~~~ 
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/sys/_types/_null.h:29:15: note: expanded from 
    macro 'NULL' 
#define NULL __DARWIN_NULL 
       ^~~~~~~~~~~~~ 
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/sys/_types.h:52:23: note: expanded from macro 
    '__DARWIN_NULL' 
#define __DARWIN_NULL ((void *)0) 
         ^~~~~~~~~~~ 

限り、私はどこ私のプロジェクトで、私は明らかにXcodeのに関連付けられているものが含まれない、また私もXcodeで開発していていない、言うことができるように:これは、私はかなり理解していないいくつかの奇妙なコンパイルの警告を引き起こしています(私がSublime Text 2で編集していてgccでコンパイルしている場合)、何らかの理由でNULLがXcodeの定義と同じように自分の環境で解釈されているようです。これはXcodeで開発するほとんどの問題が Xcodeに関連していると考えているかどうかにかかわらず、診断するのは奇妙なことです。しかし、私はそれをやっていないので、この警告はどこから来るのでしょうか?

+0

'警告:結果の型がint [-Wint-conversion]の関数から 'void *'を返す整数変換への互換性のないポインタ。これはかなり自明です。なぜ私はより具体的ではないのでしょうか?ヒント:コードを投稿しなかったからです。 –

答えて

2

機能はintを返すように宣言された(または多分、intを想定した場合には指定された特定の戻り値の型を、持っていない)、まだあなたは、その関数からNULLを戻ってきています。

関数がintを返す必要がある場合、NULLは適切な戻り値ではありません(おそらく0が良い選択かもしれません)。関数にポインタ型を返す必要がある場合は、その関数が1を返すと宣言され、返されるとして宣言されていないことを確認してくださいint

関連する問題