Zum Inhalt springen

Varianten der Programmiersprache C

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 26. April 2004 um 18:48 Uhr durch 62.138.203.75 (Diskussion). Sie kann sich erheblich von der aktuellen Version unterscheiden.

ANSI C ist eine von dem American National Standards Institue (ANSI) entwickelte Norm, die eine allgemeingültige Definition der Syntax für die Programmiersprache C beschreibt.

Als ein Projekt des technischen X3J11 Komitee, das eigens von ANSI im Jahre 1983 gegründet wurde, um eine Norm für Programmiersprache C zu entwickeln, konnte nach 6-jähriger Arbeit im Dezember 1989 die „ANSI X3.159-1989 Programming Language C“-Norm verabschieden. Diese wird heute im allgemeinen Sprachgebrauch als ANSI C bezeichnet.

Für die Entwicklung diente dabei die Programmiersprache C von Brian W. Kernighan und Dennis Ritchie (K&R C) als Basis, zu welcher ANSI C eine direkte Erweiterung darstellte, die viele der bis dato ungenormten Eigenschaften der Sprache einheitlich festlegte, aber auch neue Funktionalitäten (wie Funktions-Prototypen und einen Precompiler) in das Sprachkonzept integrierte. ANSI C räumt dabei unter Anderem mit Unklarheiten in der ursprünglichen Definition auf, hierzu zählen die Ausführungsreihenfolge der vier Inkrement- und Dekrementoperatoren (++, −−).

Im Jahr 1990 wurde die ANSI-C-Norm (mit kleinen Modifikationen) von der Internation Standards Organization (ISO) als ISO/IEC 9899:1990 übernommen.

Bis heute ist ANSI C die Sprachbasis für alle Derivate der Programmiersprache C, unter Anderem auch für das modernere C++, das über Möglichkeiten zur objektorientierten und generischen Programmierung verfügt.

Ein auf ANSI C basierendes Programm sollte, zumindest theoretisch, ohne Probleme von jedem C-Compiler übersetzt und ausgeführt werden können. In der Praxis ist dieses nur sehr bedingt der Fall, da fast alle C-Derivate viele eigene Bibliotheken und Funktionsprototypen benutzten um auf die individuellen Komponenten des Computers zugreifen zu können.

Beispiel für den Unterschied zwischen K&R C und ANSI C

ANSI C:

void prt(char* str)
{
  printf("%s\n", str);
}
int main(void)
{
  prt("Hallo, Welt!");
  return 0;
}


K&R-C:

prt(str)
  char* str;
{
  printf("%s\n", str);
}
int main()
{
  prt("Hallo, Welt!");
  return 0;
}

Siehe auch: C (Programmiersprache), C++