Pelles C c99 standard
-
Hallo
bin noch ein neuling in der programmierung. Ich benutze die IDE Pelles C für Windows10. Meine Frage, wie bekomme ich den compiler auf den c99 Standard. bisher kann ich sachen wie zb complex.h nicht verwenden.mfg
-
Du mußt
-std:C99
als Compiler-Option hinzufügen (s.a. Pelles C Forum: compiler options). Ich kenne diese IDE nicht, aber es sollte einen Menüpunkt "Projekteigenschaften" o.ä. geben, in der du dann diese Option aktivieren kannst.Edit: Habe gerade gesehen, daß ja "C17" der Standardwert ist, also sollte es auch direkt funktionieren.
Hast du denn auch die spitzen Klammern (für System-Headerdateien) benutzt?#include <complex.h>
-
Für Complexzahlen kannst du auch den Compiler befragen, ob er diese unterstützt.
Standardkonform geht das über vordefinierte Macros z.B.#if defined (__STDC_IEC_559_COMPLEX__)
-
@Th69
Habe gefunden was du meinst. ich kann auswählen zwischen c11,c17,c99 aber er bringt mir immer
noch die Fehlermeldung cant find include file <complex.h>
-
@Schorsch24 Hast du denn mal geschaut, ob die Datei überhaupt vorhanden ist?
-
Und kannst du andere C99-Headerdateien, wie z.B.
<stdbool.h>
,<tgmath.h>
oder<inttypes.h>
einbinden (s.a. C99: Design)?
-
die anderen Header Dateien stdbool.h, tgmath.h, inttypes.h gehen durch soweit, nur complex.h findet er nicht.
-
Hast du denn jetzt mal im Installationsordner nachgeschaut, ob die Datei
complex.h
dort existiert?
-
@Th69 sagte in Pelles C c99 standard:
Hast du denn jetzt mal im Installationsordner nachgeschaut, ob die Datei complex.h dort existiert?
ja hab jetzt nachgeschaut, die complex.h fehlt. wo bekomme ich die Datei her? hast du eine gute Quelle?
-
@Schorsch24 In der complex.h sind nur die Prototypen für die Funktionen definiert.
Die Funktionen selber müssen noch in einer Bibliothek sein - wenn die auch fehlt, nützt die die complex.h nichts.Die Unterstützung für Complexe Zahlen wurde mit C99 eingeführt und wurde mit C11 wieder optional.
Ob Pelles C noch complex unterstützt, ist daher fraglich.
https://forum.pellesc.de/index.php?topic=8230.msg29936#msg29936
-
Wenn es wirklich dringend ist, ist es natürlich kein Hexenwerk, zumindest eine naive Umsetzung von complex.h selber zu programmieren, indem man die arithmetischen Identitäten zur Umformung hin zu den nicht-komplexen Funktionen aus math.h nutzt. Das sollte numerisch sogar ganz ok sein. Aber es ist halt eine ganze Menge Fleißarbeit, ~20 Funktionen in jeweils 3 verschiedenen Varianten aufzuschreiben. Leider finde ich nach kurzer Suche keine fertige OS Umsetzung davon, mit der man sich die viele Arbeit sparen könnte. Der Bedarf ist wohl zu gering, da es ja bei den allermeisten Compilern schon nativ eingebaut ist (und auch nicht so viele Leute Trigonometrie mit komplexen Zahlen brauchen werden). Vielleicht findet eine tiefere Suche ja etwas, oder man guckt, ob die Umsetzungen anderer Compiler übertragbar sind.
-
danke für die Hilfe! ich werde erstmal ohne complex.h weiter machen, nicht so wild
mfg
-
@Schorsch24
Das o.g. Makro STDC_IEC_559_COMPLEX zeigt an, ob der Compiler Complexzahlen unterstützt oder nicht. Das ist UNabhängig davon, ob du C99 einstellst oder nicht, d.h. der Compiler kann für sich in Anspruch nehmen, C99 konform zu sein, ohne Complexzahlen (u.a.) zu unterstützen.