私はObjective-CがCプログラミング言語の「厳密なスーパーセット」であるとよく聞きます。 Cのいくつかの方言/標準があります(すなわち、K & R、ANSI C、C90、C99、GNU拡張...)。 Objective-Cは1980年代初頭に最初に開発されたので、これらの基準よりも前のものでなければなりません。しかし、Objective-C 2.0は2006年または2007年頃からのものであるため、より現代的なC言語の方言に基づいている可能性があります。だから、 "C"はObjective-Cのスーパーセットですか?Cのどちらの方言がObjective-Cの「厳密なスーパーセット」ですか?
答えて
はあなたが本当に定義されていない探しているものC.
のすべての標準的な方言のためのObjective-Cの対応する「方言」があります。目的Cは、通常ANSI-C(C90と同じ)の厳密なスーパーセットと考えられています。しかし、Objective Cは標準化された言語やそのようなものではありません。それは基本的に「Take Cを使ってこれらの機能を追加する」というものです。したがって、使用している特定のコンパイラに依存します。
Objective-Cコードをコンパイルするときに、XcodeがC99の厳密なエイリアシング規則をどのように処理するのか疑問に思う必要があります。 –
@iPhone開発者:Xcodeは一度も使用していませんが、iircはGCCの形式に基づいています。そうであれば、Cの基礎となる目的C自体の基準のいずれかを支持すべきである。 –
'@Billy ONeal:'確かに:http://lists.apple.com/archives/objc-language/2005/Aug/msg00050.html –
最も一般的に使用されるObjective-Cコンパイラ(GCCとClang)もCコンパイラであるとすれば、これらのコンパイラでサポートされているC言語をサポートしていると考えられます。 Appleのドキュメントには、具体的に述べ:
アップル コンパイラは、コンパイラ、GNUコンパイラコレクションの に基づいています。 Objective-C構文は GNU C/C++構文の上位セットで、Objective-C コンパイラはC、C++および Objective-Cソースコードで動作します。 は というファイル名拡張子.mでObjective-Cソースファイルを認識します。 は 標準C構文のみを含むファイルを 拡張子.cで認識します。同様に、コンパイラ は、 Objective-Cを拡張子.mmで使用するC++ファイルを認識します。 C++とObjective-Cの を使用して 他の問題は、だから、このケースでのObjective-Cは、単純にCまたはC++コンパイラによっていずれかの延長とみなされている
「のObjective-CとC++ の使用」で説明されていますあなたが基本言語として選択します。アップルから「Learning Objective-C」によると
Xcode 4.4では、Cの方言はデフォルトで "GNU99"に設定されているようです。 – zoom23
:
「のObjective-CはCプログラミング言語のANSIバージョンのスーパーセットで、Cと同じ基本的な構文をサポートしています」
- 1. 言語の厳密なスーパーセットで書かれたプログラムは多言語としてカウントされますか?
- 2. MonadFix厳密な言語で
- 3. C++の厳密なtypedef用のイディオム
- 4. テキストフィールドの厳密な検証
- 5. 厳密モードのないJSON.parse
- 6. ストライプの厳密なURLバインド
- 7. Objective-C++はC++とObjective-Cの両方のスーパーセットですか?
- 8. (厳密に)コールスタックはどこですか?
- 9. QMLの「厳密」モードですか?
- 10. PHPでの厳密な比較
- 11. PFXでの厳密な名前付け
- 12. このインスタンスのarguments.calleeの厳密なモード
- 13. 厳密に制限されたインタプリタ言語での作業
- 14. uintが厳密に正であるか
- 15. 厳密なエイリアシングのパフォーマンス上のメリット
- 16. Haskellの厳密なデータ構造のライブラリ
- 17. データ型の厳密なフィールドのメリット
- 18. C#はObjective-CとC++のようにCのスーパーセットですか?
- 19. XHTML厳密な検証
- 20. これら2つのスニペットは厳密に同等ですか?
- 21. 関数が引数で非厳密であると正式にどのように言いますか?
- 22. LINQの厳密な型付け
- 23. Xampp localhost厳密な規格のエラー
- 24. 厳密なエイリアシングとstd :: arrayとCスタイルの配列
- 25. C++の演算子オーバーロードが少ない、どちらの使い方ですか?
- 26. Scheme関数は厳密に厳密にはどのように動作しますか?
- 27. IE厳密モードのActiveXコントロールでのフリッカー
- 28. コンパイル時にVCでより厳密なコンパイルルールを設定する方法C++テンプレートコード
- 29. AS3、Java、C++のどちらの方が似ていますか?
- 30. Kivyは厳密にGUIフレームワークですか?
+1は私よりも優れています:) –
'@Chuck:' ...そしてCの*非標準*方言のいくつか! –