2012-09-10 10 views
5

である私は、次のようなヘッダファイルを作成しようとしているのtypedefの再定義は、C11機能

の再定義「をRevealBlock」C11です機能

これは気になるものですか?私はGHSidebarNav projectを見ていますが、これはうまく使えるようです。

答えて

5

あなたは、私がのUIKit/UIKit.h以外の任意のインポートが表示されないよう、確認してくださいあなたは競合ヘッダの.pchファイルをプロジェクト(またはそれはあなたがスニペットを作るために、いくつかのヘッダを削除している可能性があり、どこかRevealBlockを宣言している必要がありますより短い?)。

+1

ありがとうございました!だから私は、アプリケーションデリゲートのヘッダーファイルでそれを使用し、私はそれが警告を引き起こしていたと思います。代わりに、定義を.pchファイルに移動し、他のすべての定義を削除しました。 – joslinm

3

これは何か心配ですか?

あなたがCまたはにObjCプログラムをコンパイルすると、コンパイラはC11をサポートしていない場合、コンパイラは(あなたのプログラムを使用して、あなたや誰かが使用している可能性があり、例としてGCC 4.2 - アップル/ LLVM)プログラムを拒否すべきです。 C++は長年にわたって複数の定義をサポートしていたことに注意してください。

もちろん、複数のファイルに表示されるこれらの定義は、同じタイプとして使用する場所と常に一致する必要があります。それ以外の場合、コンパイラは呼び出しが行われる前にパラメータを正しく設定しないことがあります。

関連する問題