On Tue, Feb 14, 2006 at 07:52:22PM +0100, Marc Santhoff wrote:
> Tag,
>
> da C nicht gerade meine Heimatplanet ist habe ich eine Frage, die für
> manchen vielleicht selbstverständlich ist.
>
> Wenn in einem Programm vor der Variablendeklaration schon verschiedene
> Anweisungen stehen, meckert gcc unter FreeBSD:
>
> main.c: In function `main':
> main.c:46: syntax error before `int'
> main.c:47: `param' undeclared (first use in this function)
>
>
> Der Quelltext an der Stelle:
>
> int main (int argc, char *argv[])
> {
> #ifdef ENABLE_NLS
> bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
> bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
> textdomain (GETTEXT_PACKAGE);
> #endif
> gtk_set_locale();
> gtk_init (&argc, &argv);
> add_pixmap_directory (PACKAGE_DATA_DIR "/" PACKAGE "/pixmaps");
> int param = 1;
>
> Die letzte Zeile ist die bemängelte mit der Nummer 46.
Je nach C Variante musst du alle Variablen am Funktionsanfang
definieren.
Ich schätze du benutzt noch einen recht alten Compiler.
> Welchen Compilerschalter muß ich umlegen, um solches Verhalten zu
> erlauben? (Ich weiß, eigentlich sollte man das Programm korrigieren,
> aber ich versuche nur es zu übersetzen ... scheinbar wird diese Technik
> der "begleitenden Deklaration" überall benutzt)
Du kannst C++ compilieren, dort geht das schon länger.
Aber im allgemeinen solltest du besser die Definition an den Anfang
setzen - ist eh übersichtlicher.
-- B.Walter BWCT http://www.bwct.de bernd(at)bwct.de info(at)bwct.de To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org with "unsubscribe de-bsd-questions" in the body of the messageReceived on Tue 14 Feb 2006 - 20:08:48 CET