忍者ブログ
ちょっとは人のためになる事をしないとインターネットコミュニティーの皆様に申し訳がないかと思いながら、自分の備忘録ていどでしかなく、実際の所たいした情報も提供できないでいるブログ
[102] [101] [100] [98] [97] [96] [94] [93] [92] [91] [90]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


急いでいる人用:

-Wmissing-prototypes をつけないようにする。

Xcode で、Project または Targetの Build Settings を表示して、
Apple LLVM 3.0 Warnings
Missing function prototypes
をNo にする。


解説

Xcode 4.2 では、これまでより多くのコンパイラー警告が出るようになっている。
そのなかでも特に五月蝿いのは、プロトタイプ宣言がないC言語関数の定義だ。

warning: no previous prototype for function 'somefunction'

警告の趣旨としては、プロトタイプ宣言がないから、別のモジュールでその関数の戻り値・引数が間違って利用されいる可能性があり、実行時に予期せぬ結果になるということだろう。この点は、もっともと言える。

しかしながら、ひとつのソースファイル内のみで用いられるプライベートな(staticをつけても大丈夫な)関数の場合、前方参照にならないかぎり、プロトタイプ宣言を書かないのが普通だろう。

この警告を消す正統な方法は 関数を static にしてしまうことだ。だが、過去のコード、他の開発環境で作られたコードでは、この点について無頓着な場合が多く、大量の "no previous prototype ..." を吐き、重要な警告が埋もれてしまう。

この警告は -Wmissing-prototypes をつけると発生する。Xcode 4.2 でプロジェクトを作成すると、このオプションがデフォルトでついてくる。これを外せば良い。

警告がどの警告オプションで出力されているか調べる方法

Xcode 4.2 (というか Apple LLVM 3.0) は、警告メッセージの最後に、その警告をださせている警告オプションを表示するようになった。Xcodeエディタ上に出現する黄色い警告マークのポップアップでは、メッセージの後ろの方が切れて見えないのだが、Log Navigator (⌘7) で詳細を見ると、

warning: no previous prototype for function 'somefunction' [-Wmissing-prototypes,3]

などと表示され -Wmissing-prototypes によって出力されている警告だということがわかる。Xcode の Build Settings の検索ボックスに "-Wmissing-prototypes" と入力すれば設定項目が一発で見つかるはずだ。

PR

コメント


コメントフォーム
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード
  Vodafone絵文字 i-mode絵文字 Ezweb絵文字


トラックバック
この記事にトラックバックする:


忍者ブログ [PR]
カレンダー
09 2019/10 11
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
フリーエリア
最新CM
[02/07 @naoshi65536]
[02/07 忍]
[09/18 とおりすがり]
[06/26 ilmare]
[03/16 とおりすがり]
最新TB
プロフィール
HN:
naoshi
性別:
男性
職業:
ソフトウェア技術者
趣味:
料理
自己紹介:
@naoshi65536 で連絡がつくはずです。
バーコード
ブログ内検索
カウンター
アクセス解析
FX NEWS

-外国為替-