Re: C unter FreeBSD

From: Bernd Walter <ticso(at)cicely12.cicely.de>
Date: Tue, 14 Feb 2006 20:05:49 +0100

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 message
Received on Tue 14 Feb 2006 - 20:08:48 CET

search this site