Hallo logoft,
ich würde die Standards eher als eine Art Rechtschreibreform sehen und die Einrückungsstile als Dialekt. Ich finde diesen Vergleich treffender! ;-)
Die Zahl hinter den Standards steht meistens für das Jahr, in dem sie verabschiedet wurden: C99 im Jahre 1999, C++11 im Jahre 2011, usw.
Eine höhere Zahl bedeutet also moderner, nicht unbedingt besser!
Wenn das Standardisierungskommitee (das ist ein Gremium aus renommierten Informatikern und Wissenschaftlern) einen neuen Standard verabschiedet, sind die Compiler Hersteller prinzipiell aufgefordert, diesen zu implementieren. Die Praxis zeigt aber, dass das manchmal Jahre dauert! C++11 wird zum Beispiel bis heute von vielen Compilern noch nicht voll unterstützt! Der GCC soll dies afaik ab Version 6 als Standard verwenden.
Fortran 2008 wird von keinem einzigen freien Compiler unterstützt.
Bei der Wahl des Standards musst du also immer in Betracht ziehen, welchen Compiler du verwenden willst und ob dieser den gewählten Standard überhaupt schon vollständig unterstützt.
Der GCC (C-Compiler) kompiliert standardmäßig nach C89, wenn du einen anderen Standard willst, musst du das explizit angeben:
Code:
gcc -std=c99 <source files>
Der g++ verwendet so weit ich weiß noch C++98 - Wenn du ein Projekt in C++11 oder C++14 hast, musst du das wieder explizit angeben:
Code:
g++ -std=c++11 <source files>
Näheres zu dem aktuellen Stand beim g++ findest du hier:
https://gcc.gnu.org/projects/cxx-status.html#cxx11.
Zu den Einrückungsstilen
Auf der Wikipedia Seite waren einige Beispiele der gängigen Stile gegeben. Wichtig ist eigentlich nur, dass du dich für EINEN entscheidest und diesen in deinem Projekt stringent durchziehst! Viele Programmierer entwickeln auch ihre eigenen Stile im Laufe der Zeit - auch das ist in Ordnung, solange man innerhalb eines Projektes dabei bleibt. In vielen Lehrbüchern wird wegen der Übersichtlichkeit z.B. der Allmann Stil verwendet:
Code:
while (active)
{
if (x == 3)
{
cout << "3!" << endl;
}
else
{
foo (bar);
}
}
Andere finden diesen Stil verschwenderisch und verwenden K&R:
Code:
while (active) {
if (x == 3)
cout << "3!" << endl;
else
foo (bar);
}
Es gibt noch viele andere Stile; welcher davon am besten lesbar ist, ist Geschmacks- und Gewohnheitssache. Guck dir am besten die Beispiele auf der Wikipedia Seite an und entscheide selbst!
Viele Grüße,
Pik-9