Erweiterungen des Standards
-
In der ISO/IEC 9899:1999
steht unter 4tens Punkt 6 folgendes:A conforming implementation may have extensions (including additional library functions), provided they do not alter the behavior of any strictly conforming
program.3)- This implies that a conforming implementation reserves no identifiers other than those explicitly reserved in this International Standard.
Eine Implementierung darf zwar Erweiterung erhalten, aber es dürfen keine neuen Identifer eingeführt werden? wie soll das gehen? kann mich mal jemand aufklären?
-
Ich glaub, das liegt an deinen Englisch-Kenntnissen. Ich fasse das so auf, dass man die festgelegten Identifiers nicht verändern darf.
-
Vertexwahn schrieb:
other than those explicitly reserved in this International Standard.
Das ist der interessante Teil.
-
Ich weiß. Ich meine aber, dass es, wenn ihr Recht habt, so lauten müsste:
- This implies that a conforming implementation reserves no other identifiers than those explicitly reserved in this International Standard.
-
Michael E. schrieb:
Ich glaub, das liegt an deinen Englisch-Kenntnissen. Ich fasse das so auf, dass man die festgelegten Identifiers nicht verändern darf.
meine Englischkentnisse sind furchtbar
Der Satz "This implies that a conforming implementation reserves no identifiers other than those explicitly reserved in this International Standard." bereitet mir irgendwie Probleme - heißt das auf deutsch soviel wie: Dies impliziert, dass eine normgerechte Implementierung keine Bezeichner außer, die explizit in diesem Interantionalen Standard genannten verwendet.
Anscheinend verstehe ich da etwas falsch - gebt mir Englischunterricht
-
Michael E. schrieb:
Ich weiß. Ich meine aber, dass es, wenn ihr Recht habt, so lauten müsste:
- This implies that a conforming implementation reserves no other identifiers than those explicitly reserved in this International Standard.
Ein Fall für das Technical Corrigendum?
Im Technical Corrigendum 1 ist dazu auch nichts zu finden
-
Michael E. schrieb:
Ich weiß. Ich meine aber, dass es, wenn ihr Recht habt, so lauten müsste:
- This implies that a conforming implementation reserves no other identifiers than those explicitly reserved in this International Standard.
Seh ich das richtig, dass der einzige Unterschied die Stellung des Wortes "other" ist? Dann sind die Sätze IMHO äquivalent.
-
Der Satz heisst bloss, dass eine standardkonforme Implementation keine anderen Bezeichner definieren darf als die, die im Standard bereits definiert sind.
I.d.R. macht man das so, dass man den Compiler mit einer Option auf standardkonform schaltet, und damit die Erweiterungen ausschaltet (d.h. sie werden aus dem Namensraum herausgenommen).
Ausserdem werden oft Bezeichner mit "_" oder "__" am Anfang fuer Erweiterungen verwendet (so war es frueher mal vorgesehen -- ist es immer noch, siehe Kapitel 7.1.3 Reserved Identifiers).
-
Es gibt ziemlich viele reservierte Bezeichner, z.b. wie angesprochen alles was mit __ anfängt, aber auch str... für neue Stringfunktionen oder E... für neue errno-Konstanten.
-
Power Off schrieb:
siehe Kapitel 7.1.3 Reserved Identifiers.
oh - damit hat sich das problem geklärt - danke!