missing semikolon
-
#include <string.h> #include "strip.h" #include <stdio.h> char* strip(char* str) { int len = 0; while (str[len] != '\0') { len++; } int k; return str; } TestResult test_strip() { char str[] = "/usr//bin///env"; //example string char* p = strip(str); return (strcmp("/usr/bin/env", p)? NOT_OK : OK); }
In Zeile 13 gibt es folgenden Fehler:
error C2143: syntax error : missing ';' before 'type'
Ich finde jedoch absolut nicht die Stelle an der das ';' fehlen soll.
Was genau ist das Problem hier?
-
Compiler?
File-Extension?
Vielleicht MSVC im "C" Modus?
-
hustbaer schrieb:
Vielleicht MSVC im "C" Modus?
Die Fehlermeldung und der Code sehen sehr nach C mit MSVC aus, also vermutlich ja. Erkärung für den Threadersteller: MSVC kann nur den C89-Standard und wird auch nie mehr können. Variablendefinitionen mitten im Block sind erst ab C99 Teil des Standards.
P.S.: Deine strip-Funktion macht übrigens auf umständliche Weise überhaupt gar nichts.
-
Das diese Funktion nichts macht ist mir bewusst, denn der Fehler hat weiteres Arbeiten verhindert ;).
Woran kann man denn sehen, dass MSVC im C Modus ist?
ich benutze MSVC 2008 express edition
Das File besitzt die Endung .c, bedeutet das, dass das File im C Modus ausgeführt wird?
edit:
Es scheint das Problem in jedem Fall gewesen zu sein, denn nun funktioniert alles wie es soll.
Danke
-
Ja, MSVC verwendet die File-Extension.
Man kann die Sprache aber über Switches ändern.
-
Wobei C hier schon richtig ist, schließlich programmierst du C. Der unterstützte C-Sprachstandard des MSVC ist nun einmal nur C89, da ändern auch keine Schalter etwas dran.