Frage zu MKDEV
-
Hallo,
ich bin gerade dabei ein Linux-Kernelmodul zu programmieren. Soweit so klar, nur scheitert es leider bei der Funktion MKDEV(MAJOR, MINOR).
zwar bin ich gerade dabei, eine Major und Minor Nummer für das Modul zu vergeben:
const int MAJOR_NUM = 30; const int MINOR_NUM = 1; const int result = MKDEV(MAJOR_NUM, MINOR_NUM);
wenn ichs dann kompiliere gibt mir der Compiler immer folgende Fehlermeldung:
c:23:1 error: initializer element is not constant.also ich hab alles schon "const" gemacht, was passt dem Kompiler hier nicht?
Kann mir das jemand sagen?
danke & lg
buzz
-
und gelöst...
mache aus
const int MAJOR_NUM = 30;
const int MINOR_NUM = 1;#define MAJOR_NUM 30;
#define MINOR_NUM 1;und schon gehts
wieder was gelernt!
lg
buzzz
-
Tja das ist der Unterschied zwischen einer Compilezeitkonstante und einer Laufzeit-Pseudokonstante. Pseudo deshalb, weil der Spezifizierer const nur Readonly für die Variable anzeigt und das wie gesagt auch erst zur Laufzeit. Präprozessor und Compiler können also nur mit Compilezeitkonstanten etwas anfangen.