Frage Learning C für Objective-C


Ich bin relativ gut in Objective-C, aber ich habe mich um einige Frameworks und Bibliotheken gekümmert, die ich in Zukunft verwenden könnte, und ich sehe zunehmend die Verwendung von C. Bisher enthalten die einzigen Anwendungen, die ich geschrieben habe, nur Objective-C. Ich weiß, Objective-C ist eine Übermenge von C, aber was ich meine, wenn ich sage, dass ich nur in Objective-C geschrieben habe, ist, dass ich nur Objective-C-Methoden und die von C verschiedene Syntax von Objective-C verwendet habe Syntax. Ich habe Fragen in Bezug auf die Beziehung zwischen C und Objective-C (siehe Links unten) durchgegangen und möchte mit dem Lernen von C beginnen, aber anscheinend gibt es drei Arten von C (K & R, C89 und C99), und ich bin es Ich frage mich, welcher Typ ich lernen sollte, um mir mit Objective-C zu helfen. Ich weiß, durch das Lernen von Objective-C habe ich unwissentlich auch C gelernt, aber ich möchte die In- und Outs von C besser verstehen und mich mit seinen Funktionen, Syntax, Features usw. vertraut machen. Auch basiert Objective-C auf irgendeinem von die drei Arten von C?


10
2018-06-02 00:18


Ursprung


Antworten:


Es gibt noch mehr Arten von C. In der Zwischenzeit wurden C0X und C11 definiert ... Sie alle machen nur kleine Entwicklungsschritte von ihren Vorgängern, also sollten Sie sich nicht viel darum kümmern. Objective-C basiert auf C99 (eigentlich minus Fließkomma-Pragmas), also wäre das im Moment wahrscheinlich die beste Lösung.

Es ist nicht ganz klar aus Ihrer Frage, aber Sie bemerken, dass diese Variationen von C nur Spezifikationen aus verschiedenen Jahren entwickeln? K & R von ca. 1978, C89 von 1989, C99 von 1999 etc ... Objective-C wurde entwickelt, um eine strenge Obermenge von C zu sein, so dass Sie wahrscheinlich erwarten können, dass Objective-C eines Tages C11-Eigenschaften einbaut.

(Hinweis: einige Änderungen enthalten Informationen aus den Kommentaren)


5
2018-06-02 00:24



Ich schlage vor, Sie schauen sich einige Einführungstexte zu C an und lernen, welchen C-Dialekt der Text auch lehrt. Dies wird wahrscheinlich C89 oder C99 sein.

K & R C fehlen moderne Features wie "Prototypen" (die Anzahl und Arten von Argumenten für Ihre Funktionen deklarieren). C89 fügt all das hinzu.

C99 hat meist kleine inkrementelle Features, die in bestimmten Domänen nützlich sind. Der Großteil der Dinge, die Sie lernen müssen, sollte in C89 und C99 identisch sein. Interessante Tatsache: Microsoft hat sich nie darum gekümmert, C99 zu implementieren.

Eigentlich werde ich einen spezifischen einleitenden Text vorschlagen: benutze die Zweite Ausgabe von K & R. Dies aktualisiert K & R grundsätzlich auf C89. K & R ist ein hervorragendes Buch und eine gute Wahl für das Erlernen der C-Sprache.

https://stackoverflow.com/questions/1646667/kr-1st-edition-vs-2nd-edition


5
2018-06-02 00:22