C Struct Syntax Frage

8

Diese Frage tauchte auf, als ich kürzlich einen ziemlich alten Treiber für mein RAID-Gerät geöffnet habe. Um den Treiber für ein Linux-System kompilieren zu können, habe ich angefangen, alle Fehler zu untersuchen, die ich bei der Ausgabe bekommen habe. Und ich stieß auf diese Art von Syntax, die in den Treiberquellen verwendet wurde:

%Vor%

Also Leute, könntest du mir helfen zu verstehen, was ":" bedeutet? Ist diese C-Syntax überhaupt vorhanden? Ich weiß, dass es eine Bitfelddefinition gibt, aber das sieht für mich ziemlich anders aus.

    
Anton 20.07.2011, 07:53
quelle

2 Antworten

6

Diese Syntax zum Initialisieren von Strukturelementen wird als designierter Initialisierer bezeichnet. % Co_de% ist eine ältere GCC-spezifische Syntax. Dies ist im GCC-Handbuch dokumentiert.

    
sigjuice 20.07.2011, 08:46
quelle
6

Dies ist die C99-Struct-Initialisierungssyntax. owner , ioctl usw. sind Namen von Feldern in der Struktur und THIS_MODULE , ft_ioctl usw. sind die Werte. Dies geschieht effektiv, außer zur Kompilierzeit:

%Vor%

Die neue Syntax ist nett, weil sie die Initialisierung unabhängig von der Reihenfolge der Strukturfelder ausführt.

    
user25148 20.07.2011 08:00
quelle

Tags und Links