C Kompilierfehler

rechnan

Grünschnabel
Hallo zusammen,

das folgende kurze Programm wird nicht richtig kompiliert.

C:
#include <my_global.h>
#include <my_sys.h>
#include <mysql.h>
#pragma comment(lib,"libmysql.lib")

int main (int argc, char *argv[])
{
	MYSQL *conn;
	conn = mysql_init (NULL);

	int x;
}

Die Fehlermeldung lautet:

2008\projects\capitest_proma\capitest\capi\connect1.c(11) : error C2143: Syntaxfehler: Es fehlt ';' vor 'Typ'

Verändere ich das Programm zu

C:
#include <my_global.h>
#include <my_sys.h>
#include <mysql.h>
#pragma comment(lib,"libmysql.lib")

int main (int argc, char *argv[])
{
	int x;

	MYSQL *conn;
	conn = mysql_init (NULL);
}

so wird es einwandfrei kompiliert. Warum?

Danke für eure Zeit,
Gruß rechnan
 
Zuletzt bearbeitet:
Hi.

Laut C89 u. C90 Standard müssen Variablendeklarationen am Anfang eines Blockes stehen. Es ist nicht erlaubt Variablendeklarationen inmitten von Anweisungen vorzunehmen.

In C99 ist dies wiederum (wie auch in C++) statthaft.

Gruß

PS: Bitte verwende die entsprechenden Code-Tags ([c] ... [/c] für C-Code) für deinen Programmtext.
 
Hallo deepthroat,

vielen Dank für deine schnelle Antwort.

Ich benutze Visual Studio 2008 Express und habe jetzt die Endung des Files von .c nach .cpp geändert, und alles funktioniert :) Ergeben sich durch diese Änderung im allgemeinen auch irgendwelche Nachteile, z.B. bzgl. Performance?

Sorry übrigens wegen der Code-Tags, wusste ich nicht.

Gruß rechnan
 
Ich benutze Visual Studio 2008 Express und habe jetzt die Endung des Files von .c nach .cpp geändert, und alles funktioniert :) Ergeben sich durch diese Änderung im allgemeinen auch irgendwelche Nachteile, z.B. bzgl. Performance?
Es sind zwei verschiedene Sprachen. Nicht jedes C Programm ist ein valides C++ Programm und umgekehrt schonmal gar nicht.

Von der Geschwindigkeit gibt es keine Unterschiede. Es gibt andere Stolperfallen.

Wie Bjarne Stroustrup sagte: In C ist es leicht sich in den Fuß zu schießen. In C++ ist es schwieriger, aber wenn man es tut, bläst es einem das ganze Bein weg. ^^
Sorry übrigens wegen der Code-Tags, wusste ich nicht.
Du kannst deine Beiträge übrigens auch noch bearbeiten.

Und denk bitte dran, deine Themen als erledigt zu markieren.

Gruß
 
Zurück