2

純粋なCでオブジェクト指向プログラミングを行うことが可能です。

一部の戦略では、プリプロセッサマクロを使用して、エラーが発生しにくく、簡単にします。一部の戦略では、プリプロセッサによって純粋なcに拡張される新しい構文を、基本オブジェクトクラスおよびメモリ管理用のいくつかのメソッドとともに追加します。

Objective-Cはこのようなプロジェクトとして始まったようです

Objective-C構文を純粋なCに処理できるツールはありますか?それを探求していなくても、それは実行可能のようです。

明確にするために、iOSコードを他のプラットフォームにコンパイルしたり、cocoaライブラリを他のプラットフォームに移植したりするのではなく、Objective-C構文とプリプロセッサを使用してpure-Cでooテクニックを使用する方法について疑問に思っています。またはプリコンパイルステップ。

4

3 に答える 3

1

ポータブルオブジェクトコンパイラ。最新のObjective-Cをコンパイルすることはできませんが、あなたが求めているものには完璧なようです。ここでPOCの欠点の議論を見てください

C++の状況はもっと興味深いものです。Cfrontは、Cコードを生成した元のC ++コンパイラでしたが、古くから使用されていたため、今日では(簡単に?)ダウンロードできません。幸いなことに、Comeau C / C ++があります。これは、おそらく非常に近代的で、標準に準拠しています。それは50ドルかかります。

ただし、どちらからも非常に読みやすいCコード(特にフル機能のComeau)を取得することは期待していません。

于 2012-10-12T08:40:49.843 に答える
-1

いいえ、それは不可能です。Objective-Cのすべての特殊な(識別子ではない)シンボルをプリプロセッサマクロとして使用できるわけではないからです。少なくとも標準のCプリプロセッサではそうではありません。

他のプリプロセッサは、識別子以外の名前でマクロを定義できる場合がありますが、私にはわかりません。

Objective-Cの初期のプリプロセッサ(およびC ++について)について話すとき、それはおそらく(そしてC ++の場合は間違いなく)カスタムメイドのパーサーであり、アセンブラーまたはオブジェクトコードを出力する代わりにCコードを出力しました。

于 2012-10-12T07:11:00.103 に答える
-1

純粋なcでオブジェクト指向プログラミングを行うことは可能ですか?

はい、ooは哲学の問題です。glibとcスタイルオブジェクトの実行方法を見てください:http://developer.gnome.org/glib/

AppleはCoreFundationでそれを行いました:https ://developer.apple.com/library/mac/#documentation/CoreFoundation/Conceptual/CFDesignConcepts/CFDesignConcepts.html#//apple_ref/doc/uid/10000122i

ちなみに、objective-c構文をオブジェクト指向の純粋なcに処理できるツールはありますか?

ええ:gcc(WikiによるとGCC 4.6、実際にはチェックされていません;))とclang、あなたが毎日使っているツールです。これは、obj-cをobj-cAbleにするObjective-Cランタイムであるため、libobjc.A.dylibライブラリも必要です。すべてのメッセージ'[]'、'@'ディレクティブおよびその他のobj-cのものは、コンパイル後にcに変換されるため、obj-cを純粋なcコードで記述できます。

于 2012-10-12T08:20:04.497 に答える