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?
Dies ist in C unzulässig. Initialisierungslisten müssen konstante Kompilierzeitausdrücke sein. Tun Sie stattdessen Folgendes:
%Vor%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.
Tags und Links c