Ich höre oft, dass Objective-C eine "strenge Obermenge" der Programmiersprache C ist. Es gibt mehrere Dialekte / Standards von C (dh K & amp; R, ANSI C, C90, C99, GNU-Erweiterungen ...); Objective-C wurde zuerst in den frühen 1980er Jahren entwickelt und muss daher diesen Standards vorausgehen. Objective-C 2.0 stammt jedoch aus den Jahren 2006 oder 2007 und könnte daher auf einem moderneren C-Dialekt basieren. Also, welches "C" ist Objective-C eine Obermenge von?
Da die am häufigsten verwendeten Objective-C-Compiler (GCC und Clang) ebenfalls C-Compiler sind, könnte man sich vorstellen, dass sie die von diesen Compilern unterstützten C-Dialekte unterstützen. Apples Dokumentation besagt ausdrücklich:
Der Apfel Compiler basieren auf den Compilern der GNU Compiler-Sammlung. Objective-C-Syntax ist eine Obermenge von GNU C / C ++ - Syntax und das Objective-C Compiler funktioniert für C, C ++ und Objective-C-Quellcode. Der Compiler erkennt Objective-C-Quelldateien nach die Dateinamenerweiterung .m, genau so erkennt Dateien, die nur enthalten Standard-C-Syntax nach Dateiname Erweiterung .c. Ähnlich der Compiler erkennt C ++ - Dateien, die verwenden Objective-C durch die Erweiterung .mm. Andere Probleme bei der Verwendung von Objective-C mit C ++ sind in "Verwendung von C ++ Mit Objective-C "
Also wird Objective-C in diesem Fall einfach als Erweiterung des C- oder C ++ - Compilers betrachtet, je nachdem, welche Sie als Basissprache wählen.
Was Sie suchen, ist nicht wirklich definiert. Objective C wird normalerweise für eine strenge Obermenge von ANSI-C gehalten (was dasselbe wie C90 ist). Objective C ist jedoch keine standardisierte Sprache oder etwas Ähnliches. Seine Beschreibung ist im Grunde genommen "Nimm C und füge diese Eigenschaften hinzu". Es ist daher abhängig von dem jeweiligen Compiler, den Sie verwenden.
Nach " Learning Objective-C " von Apple :
"Objective-C ist eine Obermenge der ANSI-Version der C-Programmiersprache und unterstützt dieselbe grundlegende Syntax wie C."
Tags und Links c objective-c