Was sind Funktionen aus dem aktuellen C-Standard, die ursprünglich nicht Teil von C waren, aber in / für C ++ erfunden wurden und aufgrund ihrer Vorteile später in C übernommen wurden?
Ein prominentes Beispiel ist der einzeilige Kommentar //
, der ursprünglich aus C ++ stammte und später von C übernommen wurde.
Kennen Sie weitere Funktionen des aktuellen C-Standards, die explizit oder implizit aus der Entwicklung von C ++ stammen?
Info: Natürlich weiß ich, dass C ++ von C abgeleitet ist, aber ich habe nur darüber nachgedacht, welche Funktionen aus der Entwicklung seines Derivats C ++ übernommen wurden.
c++
c
language-lawyer
standards
language-features
RobertS unterstützt Monica Cellio
quelle
quelle
_Bool
Typ wurde von C ++ inspiriert,bool
glaube ich.main()
), ist (glaube ich) auch etwas, das C ++ als Pionierarbeit geleistet und C anschließend übernommen hat.Antworten:
Ich kann nicht bestätigen, dass sie definitiv direkt von C ++ beeinflusst wurden 1 , aber hier ist eine Liste der Funktionen in Standard-C ++, die in C99 hinzugefügt wurden:
C11:
1 Zum Beispiel hatte BCPL, der Vorgänger von B, der wiederum der Vorgänger von C ist, bereits dieselbe Syntax für einzeilige Kommentare. Einige davon wurden möglicherweise in einigen C-Implementierungen als Spracherweiterungen unterstützt, bevor sie in Standard-C ++ integriert wurden. In diesen Fällen wurden möglicherweise sowohl Standard C als auch Standard C ++ von derselben Quelle beeinflusst, anstatt sich gegenseitig zu beeinflussen.
quelle
union named { struct { int i;}; };
Unbenannt :union named { struct { int i;} unnamed; };
. Die unbenannte Struktur hat keinen Namen, aber eine benannte Variable. Anonyme Struktur ist unbenannt und hat keine benannte Variable.Attribute wurden in C ++ 11 hinzugefügt und werden in der nächsten C-Standardversion C2x hinzugefügt . Der Vorschlag (und hier ) für diese Funktion bezieht sich speziell auf C ++.
Beispiel:
In diesem Beispiel „ Attribut attr1 auf die Art der Variable i, attr2 gilt und attr3 auf die Variable selbst gilt, gilt attr4 auf dem if - Anweisung und Hersteller :: attr5 zur Rückstellung gilt. “ Quelle
quelle