Syntaxfehler den ich nicht erkenne
-
@MrLuegner:
Dein Fehler ist vermutlich in irgendeinem der#include
s.@Helmut-Jakoby: das ist nicht dasselbe.
Geht:
typedef enum { CR_DIE, CR_WARN } CR_ACTION; CR_ACTION foo() { return CR_DIE; }
In deiner Variante müsstest du schreiben:
enum CR_ACTION foo() { return CR_DIE; }
Oben wird also dem kompletten
enum {...}
(inklusiveenum
) ein Name gegeben, deine Variante benötigt dagegen immer noch dasenum
dazu bei Verwendung. C != C++.
-
@wob sagte in Syntaxfehler den ich nicht erkenne:
deine Variante benötigt dagegen immer noch das enum dazu bei Verwendung
Oh, das ist bei mir (C++ Visual Studio und MinGw) nicht so .
Trotzdem danke, ich werde mich mal ein bisschen mehr damit beschäftigen.
-
@Helmut-Jakoby sagte in Syntaxfehler den ich nicht erkenne:
Oh, das ist bei mir (C++ Visual Studio und MinGw) nicht so
Kompilierst du denn als C? Oder als C++?
-
@wob Beide Versionen kompilieren ohne den Zusatz 'enum' bei der Rückgabe. Getestet mit Visual Studio 2019 Vers.b16.10.0.. Eigenschaften/Allgemein/C++-Sprachstandard 'ISO C++17-Standard(/std:c++17)'
Edit1: Ich hab das noch gefunden: https://stackoverflow.com/questions/385023/why-do-you-use-typedef-when-declaring-an-enum-in-c
-
@Helmut-Jakoby sagte in Syntaxfehler den ich nicht erkenne:
Beide Versionen kompilieren ohne den Zusatz 'enum' bei der Rückgabe.
enum { CR_DIE, CR_WARN } CR_ACTION; CR_ACTION foo() { return CR_DIE; } int main() {}
1>------ Build started: Project: Project1, Configuration: Debug Win32 ------ 1>Source.c 1>C:\Users\Swordfish\source\repos\Project1\Source.c(6,11): error C2061: syntax error: identifier 'foo' 1>C:\Users\Swordfish\source\repos\Project1\Source.c(6,11): error C2059: syntax error: ';' 1>C:\Users\Swordfish\source\repos\Project1\Source.c(6,15): error C2059: syntax error: '<parameter-list>' 1>Done building project "Project1.vcxproj" -- FAILED.
Danke, 6, setzten.
-
Also meinst du das ich einen generellen Fehler in #include <tcpd.h> habe oder das da nur ein ; fehlt das habe ich jetzt auch schon mal probiert und es ist keine Veränderung im Fehler.
-
@Helmut-Jakoby sagte in Syntaxfehler den ich nicht erkenne:
'ISO C++17-Standard(/std:c++17)'
Wie ich oben schrieb: C != C++. Dies ist das C-Forum.
-
@MrLuegner sagte in Syntaxfehler den ich nicht erkenne:
Also meinst du das ich einen generellen Fehler in #include <tcpd.h> habe oder das da nur ein ; fehlt das habe ich jetzt auch schon mal probiert und es ist keine Veränderung im Fehler.
Da ich da keinen Fehler gesehen habe, bin ich von einem Fehler in einer deiner .h-Dateien ausgegangen. Andererseits habe ich das repo mal eben schnell ausgecheckt und was soll ich sagen, "make" läuft ohne Fehler durch (und kompiliert dabei auch das common.c erfolgreich), es gibt nur eine Warnung anderswo (in echosrv.c) wegen einer unbenutzen Variable.
Daher: es geht bei mir, kann dir also nicht helfen.
-
@wob Oh shit, hab ich nicht bemerkt. Danke.
-
@Swordfish Bitte, 1, aufstehen!
-
Okay danke für deine Hilfe dann schau ich mal weiter.