Fehler: Initialisierungselement ist zur Ladezeit nicht berechenbar

8

Ich habe in einer Funktion, die eine Struktur nimmt, und ich versuche, seine Variablen in einem Array zu speichern, aber ich bekomme dies, wenn ich gcc -Wall -ansi -pedantic-errors -Werror

ausführen %Vor%

Ich bekomme Fehler: Initialisierungselement ist nicht berechenbar bei Ladezeit, wenn ich versuche, das oben genannte zu kompilieren. Es sieht gut aus für mich, was ist los?

    
zxcv 02.10.2008, 05:08
quelle

2 Antworten

11

Dies ist in C unzulässig. Initialisierungslisten müssen konstante Kompilierzeitausdrücke sein. Tun Sie stattdessen Folgendes:

%Vor%     
Mike Thompson 02.10.2008, 05:13
quelle
15

Mike's Antwort ist absolut richtig.

Wenn Sie jedoch die GNU C-Erweiterungen verwenden oder stattdessen den neueren und besseren C99-Standard verwenden können (verwenden Sie die Option --std=c99 ), dann sind Initialisierungen wie diese vollkommen legal. Der C99-Standard ist seit gut 9 Jahren verfügbar, und die meisten C-Compiler unterstützen ihn ziemlich gut ... vor allem diese Funktion.

    
Dan Lenski 02.10.2008 05:39
quelle

Tags und Links