Diskussion:C (Programmiersprache)/Archiv/2009

Letzter Kommentar: vor 14 Jahren von Drahkrub in Abschnitt Syntax Präprozessor

Fehler?

Ausschnitt aus dem Artikel: Im Quelltext lassen sich diese Zeichen plattformunabhängig über eine Escape-Sequenz wie folgt ersetzen:

   * \uXXXX (wobei X für eine Hexadezimalziffer steht) für Zeichen mit einem Code von 00A0hex bis FFFFhex.
   * \UXXXXXXXX für alle Zeichen mit einem Code ≥00A0hex.

Anmerkung: Muß letztere Zeile nicht lauten?:

Nein. Zeichen größer FFFFhex müssen durch \UXXXXXXXX dargestellt werden, da das \u-Format nicht mehr ausreicht. Zeichen zwischen A0hex und FFFFhex können aber auch durch \U dargestellt werden, aber dann ist das dann ebenfalls mögliche \u-Format kürzer. Für automatisch generierten Code kann es aber von Vorteil sein, sämtliche nicht-ASCII-Zeichen durch eine \U-Sequenz zu kodieren, spart man sich halt eine Fallunterscheidung im Codegenerator... --RokerHRO 21:59, 5. Mai 2009 (CEST)

Die Theorie zur Entwicklung des Namen ist umstritten. Es wäre schön wenn jemand auch die anderen Theorien darstellen könnte.

Archivierung dieses Abschnittes wurde gewünscht von: Antonsusi 12:26, 11. Sep. 2009 (CEST)

Feldgröße

Im Abschnitt Schwächen taucht der Begriff Feldgröße als Link auf. Dieser Link führt nur auf die physikalische Feldgröße und sollte entfernt werden. (ich entferne es nicht, falls der Autor den Artikel Feldgröße noch erweitern wollte) Frank Braun

Archivierung dieses Abschnittes wurde gewünscht von: Antonsusi 12:26, 11. Sep. 2009 (CEST)

----

Kann nicht einer im Artikel angeben, wo es den 3742 Bytes großen C Compiler gibt? Mich würde das sehr interessieren.

Archivierung dieses Abschnittes wurde gewünscht von: Antonsusi 12:26, 11. Sep. 2009 (CEST)

C als Zwischencode

Meines Erachtens werden hier recht esoterische Beispiele gegeben. Wäre es nicht viel naheliegender auf Lex und Yacc zu verweisen? -- octo 08:51, 13. Jun. 2009 (CEST)

Unter Zwischencode steht: Zwischencode ist Code, der [...] generiert wird. Im Falle von Lex und Yacc wird aber ein Teil des Codes explizit in den Eingabedateien von Lex und Yacc angegeben. Deshalb finde ich die Bezeichnung Zwischencode für die Ausgabe selbiger Programme nicht ganz passend. Persönlich finde ich die Angabe des GHC nicht als ein besonders exotisches Beispiel.--plaicy 11:25, 14. Jun. 2009 (CEST)
Du hast recht, die Definition von „Zwischencode“ erfüllen lex und yacc nicht so 100%ig. Trotzdem fände ich sie als „Abstraktionsschicht über C“ an dieser Stelle erwähnenswert. Ciao, -- octo 11:34, 16. Jun. 2009 (CEST)
Archivierung dieses Abschnittes wurde gewünscht von: Antonsusi 12:26, 11. Sep. 2009 (CEST)

Einflüsse

Wo liegt denn der Einfluss von "Assembler" auf "C"? Basic sieht aus wie Assembler, gut, aber C? --84.56.238.10 18:54, 17. Jun. 2009 (CEST)

Vielleicht dass C sehr hardwarenahe Operationen wie Bitoperationen enthält, was vorher in Hochsprachen nicht üblich war? Oder definiertes Überlaufverhalten, das sich am Überlaufverhalten der CPU-Architektur orientiert. --RokerHRO 20:51, 17. Jun. 2009 (CEST)
Archivierung dieses Abschnittes wurde gewünscht von: Antonsusi 12:26, 11. Sep. 2009 (CEST)

Literatur

Es wäre cool, wenn man da noch so 6 oder 8 weiterführende Literaturangaben machen könnte. Aufgteilt nach Anfänger, Fortgeschritten und Anwendungen vllt. denn Programmierbücher gibts wie Sand im Wasser, also muss natürlich eine gute Begründung her, wieso gerade diese und jene Bücher. Danke --WissensDürster 14:44, 13. Aug. 2009 (CEST)

EXIT_SUCCESS

Hallo,

ist es nicht so das EXIT_SUCCESS eigentlich fuer die stdlib/exit() Funktion gedacht ist? Ich meine es ist zufaelligerweise auch als 0 definiert aber so viel ich weiss sollte man das in main nicht zurueck geben (nur wenn man das Programm mit exit verlaesst).

Gruesse

jarrad (nicht signierter Beitrag von 134.188.4.11 (Diskussion | Beiträge) 10:03, 14. Aug. 2009 (CEST))

Datentypumwandlungen

Aus dem Artikel erstmal hierher verfrachtet:

"Datentypenumwandlung Problem: Der Compiler akzeptiert keine gemischten Datentypen in einem Ausdruck. Deshalb muss vorher eine Datentypenumwandlung vorgenommen werden. Dazu giebt es zwei Möglichkeiten:

  • Implizite Typenumwandlung (Macht der Kompiler selbst)

Es werden jeweils die "kleineren" in den "größeren" im Ausdruck enthaltenen Datentyp umgewandelt.

  • Explizite Typenumwandlung mit dem cast-operator (Macht der Programmierer selbst)

Der castoperator: Hierbei schreibt der Programmierer den gewünschten Datentyp in normale Klammern vor die Variable oder Zahl, derren Datentyp gewandelt werden soll. z.B. (double)a; (int)7; ..."

So (mit inhaltlichen, grammatischen Fehlern und in diesem Stil) kann dieser Beitrag nicht im Artikel bleiben, prinzipiell gehören Informationen zur Umwandlung von Datentype sehr wohl in den Artikel. --Burkhard 20:49, 26. Okt. 2009 (CET)

Syntax Präprozessor

Einen schönen guten Tag,

leider ist in diesem Beispiel ein Leerzeichen zwischen # und include. Das führt Einsteiger aufs Glatteis. Wäre schön, wenn es beseitigt wird.

  1. include <stdio.h>
  2. include <stdlib.h>

int main(void) {

   printf("Hallo Welt!\n");
   return EXIT_SUCCESS;

} /* end main() */

Herzlichen Dank, Arnold a.esper@gmx.net (nicht signierter Beitrag von 131.130.179.160 (Diskussion | Beiträge) 13:34, 30. Nov. 2009 (CET))

Wer hier wer jemanden aufs Glatteis führt, dann bist Du das ;-)
Selbstverständlich können und dürfen Leerzeichen zwischen # <Direktive> eingeschoben werden, wovon besondere bei verschachteteln #if-Direktiven gerne Gebrauch gemacht wird. Einfach mal ausprobieren. Die Syntax verlangt nur, dass die Präpozessor-Zeile mit # am Zeilenanfang eingeleitet wird - leider gehen die meisten Darstellungen der Präprozessor-Syntax auf diesen Aspekt nicht ein bzw. sind sogar falsch. Eine Direktive ist [if|ifdef|ifndef|include|...] - eben nicht [#if|#ifdef|...]. Hab's trotzdem mal geändert, damit keiner unnötigerweise darüber stolpert. --Burkhard 21:41, 1. Dez. 2009 (CET)

C-Implementation

Der Begriff "gehostete C-Implementation" ist mir unklar und auch nicht definiert. Was ist eine hosted-Umgebung ?-- 77.24.214.159 13:15, 1. Dez. 2009 (CET)