私は Objective-C に比較的精通していますが、将来使用する可能性のあるいくつかのフレームワークとライブラリを調べており、C の使用がますます増えています。これまでに作成したアプリケーションには、Objective-C のみが含まれています。Objective-C が C のスーパーセットであることは知っていますが、Objective-C でのみ記述したということは、Objective-C メソッドと、C とは明らかに異なる Objective-C の構文のみを使用したということです。構文。C と Objective-C の関係 (以下のリンクを参照) に関する質問をしてきて、C の学習を開始したいと考えていますが、どうやら C には 3 つのタイプ (K&R、C89、および C99) があり、私はObjective-C を使いこなすには、どの型を学ぶべきか迷っています。Objective-C を学んだことで知っていて、知らず知らずのうちに C も学んだ
2 に答える
C の入門テキストをいくつか見て、そのテキストで教えられている C の方言を学ぶことをお勧めします。これはおそらく C89 または C99 です。
K&R C には、「プロトタイプ」(関数への引数の数と型の宣言) などの最新の機能がありません。C89はそれらすべてを追加します。
C99 には、ほとんどの場合、特定の分野で役立つ小さな増分機能があります。学習する必要がある内容の大部分は、C89 と C99 で同じである必要があります。興味深い事実: Microsoft は、C99 を実装することを決して気にしませんでした。
実際、私は特定の導入テキストを提案します: K&RのSecond Editionを使用してください。これは基本的に K&R を C89 に更新します。K&R は優れた本であり、C 言語を学ぶのに最適です。
https://stackoverflow.com/questions/1646667/kr-1st-edition-vs-2nd-edition
Cにはさらに多くのタイプがあります.その間にC0XとC11が定義されました. Objective-C は C99 (実際には浮動小数点プラグマを除く) に基づいているため、現時点ではおそらくそれが最適です。
あなたの質問からは完全には明らかではありませんが、C のこれらのバリエーションが異なる年から仕様を進化させているだけであることに気付きましたか? K&R from ca. 1978 年、1989 年からの C89、1999 年からの C99 など... Objective-C は C の厳密なスーパーセットとして設計されたので、Objective-C がいつか C11 機能を組み込むことを期待できます。
(注:コメントからの情報を含めるためにいくつかの編集)