Diskussion:C-Präprozessor
define und symbolische konstanten ?
BearbeitenHallo. Ich wollte mir einen Überblick über Präprozessoren verschaffen. In dem Artikel ging das ja noch. Aber hier steht ja fast nur sehr fachspezifisches. Kann man #define nicht für's Definieren von "symbolischen Konstanten" benutzen - und wenn ja oder nein - was sind über symbolische Konstanten? Grüße --WissensDürster 12:47, 24. Feb. 2009 (CET)
- Tja, dass in C-Präprozessor speziell auf selbigen eingegangen wird und nicht auf Präprozessoren allgemein, sollte verständlich sein X-) Richtig ist aber, dass der Hauptartikel "Präprozessor" etwas schwach ist. --arilou 18:31, 12. Mai 2009 (CEST)
- "symbolische Namen von Konstanten", Beispiel: #define PI 3.14159
- Afaik ist die allgemeine Sprechweise eher, dass hier PI die Konstante ist, und 3.14159 ein Literal, oder? Ein "Makro ohne Parameter" ist eine Konstante.
- Zu WissensDürsters Frage: als symbolische Konstante gilt eine Konstante "ohne zugewiesenem Wert", das kommt im Artikel nicht richtig rüber.--arilou 18:39, 12. Mai 2009 (CEST)
Zum Glück ist das lange her. Ich hoffe einfach ich muss nie wieer was mit C machen, danke trotzdem. Es lebe die OOP. --WissensDürster 18:54, 12. Mai 2009 (CEST)
Turing vollständig?
BearbeitenDer Präprozessor ist schon ganz schön mächtig - ist die Sprache aber auch turing mächtig (soll ja wohl vollständig heissen arilou 18:31, 12. Mai 2009 (CEST))? (nicht signierter Beitrag von Kosmix (Diskussion | Beiträge) 13:04, 26. Apr. 2009 (CEST))
- Nein. Informelle Begründung: es gibt keine (bedingten) Sprungbefehle ("Look Ma, no GOTO!" ;o). (Man kann übrigens sogar argumentieren, dass nicht einmal C selbst Turing-complete ist, da Zeiger (und auch Dateioffsets) nur einen endlichen Wertebereich fassen können.) --IrrwahnGrausewitz blah 00:11, 9. Sep. 2010 (CEST)
Ersetzung
BearbeitenDas Wort "Ersetzung" klingt nicht nach einem guten Sprachstil. Wie wäre es z.B. mit "Bedingter Tausch" (nicht signierter Beitrag von 217.151.242.163 (Diskussion) 13:40, 31. Aug. 2011 (CEST))
- Überall im Artikel? Sicher nicht! Es findet kein (Aus-)Tausch (exchange) sondern eine Ersetzung (replacement) statt. Der C-Standard ist da eindeutig. Was allerdings fragwürdig ist, ist die Abschnittsüberschrift "Bedingte Ersetzung". Der englische Terminus lautet conditional inclusion, also etwa "bedingte Einbeziehung", was im Deutschen noch mehr holpert als "bedingte Ersetzung". "Bedingte Übersetzung" träfe zwar immer noch leicht daneben, liest sich aber geschmeidiger und ist in deutschsprachiger Fachliteratur durchaus gebräuchlich. Meinungen? --IrrwahnGrausewitz blah 18:57, 31. Aug. 2011 (CEST)
- Keine schlechte Idee, Bedingte Übersetzung zu schreiben. Aber als Titel würde sich sicherlich auch conditional inclusion eignen.
C-Präprozessor in C++
BearbeitenHallo Der C++ Präprozessor ist meines Erachtens nach (fast) komplett der selbe wie der C Präprozessor. Deshalb finde ich sollte in diesem Artikel auch der Präprozessor von C++ erwähnt werden. Wenn Unterschiede zwischen dem Präprozessor von C und C++ vorhanden sind, sollten sie auch aufgelistet werden.
--AndiixAndii (Diskussion) 15:19, 5. Jun. 2012 (CEST)AndiixAndii
"Gezielter Abbruch" usw. nicht mehr C-Präprozessor ...?
BearbeitenDie Anweisungen #error, #line und #pragma haben doch nichts mit dem C-Präprozessor zu tun - die werden (wenn ein getrennter cpp verwendet wird) zum Compiler durchgeschleift, wie auch alles andere, was mit # beginnt und nicht erkannt wird! Daher sollten diese Kommandos hier raus und zum C-Compiler ... --Haraldmmueller (Diskussion) 16:37, 12. Feb. 2018 (CET)
Vereinfachung / Tokenizing
BearbeitenBzgl. diesem Edit (Löschung).
Richtig, der Tokenizer ist eine Compiler-Stufe nach dem Präprozessor. Aber? Führt der Präprozessor nicht dennoch zumindest teilweise einige Schritte aus von
- Aufbereitung in Tokens: Der Präprozessor zerlegt die Eingabe in für die nachfolgenden Compiler-Phasen leichter zu verarbeitende Einheiten und Leerräume und ersetzt Kommentare durch Leerräume.
? Ich kenne mich mit dem C-Präprozessor jetzt nicht sooo im Detail aus, aber ich könnte mir denken, dass zumindest ein Teil dieser (gelöschten) Aussage richtig war...
--arilou (Diskussion) 13:20, 4. Sep. 2020 (CEST)
- Nein. Auch der Präprozessor arbeitet auf Token, nicht auf reinem Text. Darum kann er ja auch erkennen, ob der zu ersetzende Text sich z.B. innerhalb einer Zeichenkette befindet (dann halt nicht ersetzen, außer Trigraphen) oder nicht.
- Der anschließend laufende Compiler führt wieder eine Aufbereitung in Token durch, die aber nicht genau die gleichen Token sind, da der Compiler z.B. zwischen Schlüsselwörtern und Identifiern unterscheiden kann usw.
- --RokerHRO (Diskussion) 22:31, 14. Okt. 2024 (CEST)
"Wikipedia ist keine Sammlung von Anleitungen..."
BearbeitenDer grösste Teil dieses Artikels ist löschwürdig, vgl. WP:WWPNI: "Wikipedia ist keine Sammlung von Anleitungen und Ratgebern. Es ist nicht Aufgabe der Wikipedia, zu erklären, wie man eine Redewendung, ein Gerät oder eine Software verwendet...". Hier braucht es dringend eine Überarbeitung, die dieses Rumpf-Handbuch zu einer enzyklopädische Darstellung des Lemmagegenstands eindampft. --Nico b. (Diskussion) 22:53, 12. Apr. 2023 (CEST)