Wann ist typedef in c zu verwenden?

8

Kann mir jemand sagen, wann ich typedef in C benutzen soll? Im folgenden Code bekomme ich eine Warnung von gcc :

warning: useless storage class specifier in empty declaration

%Vor%     
damned 15.10.2012, 16:45
quelle

6 Antworten

10

Also ..

Sie können dies tun:

%Vor%

Um ein Objekt zu definieren, das Sie als struct node verwenden können.

So:

%Vor%

Aber sagen Sie, dass Sie es nur als node bezeichnen möchten. Dann könnten Sie tun:

%Vor%

oder

%Vor%

und dann verwenden Sie das als:

%Vor%     
Bill Lynch 15.10.2012, 16:48
quelle
12

Die Syntax von typedef ist typedef <type> <name> ; es macht den Typ über name zugänglich. In diesem Fall haben Sie nur eine type und keine name angegeben, daher beschwert sich Ihr Compiler.

Sie möchten wahrscheinlich

%Vor%     
nneonneo 15.10.2012 16:47
quelle
2

Verwenden Sie typedef , wenn Sie einen anderen Namen für einen Typ verwenden möchten, z. eine Struktur.

In Ihrem Fall können Sie anstatt struct node zum Deklarieren einer Variablen verwenden, stattdessen nur Node als Alias ​​für struct node verwenden.

Aber Sie verpassen den Alias ​​in Ihrer Deklaration:

%Vor%

Dies führt zu demselben Ergebnis, kann jedoch die Ursache Ihres Fehlers besser verdeutlichen:

%Vor%     
pb2q 15.10.2012 16:47
quelle
1
%Vor%

Falls Sie

schreiben wollen %Vor%

statt

%Vor%

Innerhalb der Struktur benötigen Sie immer noch die     Strukturknoten * forwardLink;

    
user93353 15.10.2012 16:49
quelle
0

Typedef wird zum Definieren des Benutzerdatentyps verwendet. Zum Beispiel

%Vor%

Nun können Sie int anstelle von int verwenden.

%Vor%     
Afaq 15.10.2012 16:54
quelle
0
___ qstntxt ___

Kann mir jemand sagen, wann ich typedef in C benutzen soll? Im folgenden Code bekomme ich eine Warnung von %code% :

%code%

%Vor%     
___ answer12900266 ___
%Vor%

Falls Sie

schreiben wollen %Vor%

statt

%Vor%

Innerhalb der Struktur benötigen Sie immer noch die     Strukturknoten * forwardLink;

    
___ answer12900234 ___

Die Syntax von %code% ist %code% ; es macht den Typ über %code% zugänglich. In diesem Fall haben Sie nur eine %code% und keine %code% angegeben, daher beschwert sich Ihr Compiler.

Sie möchten wahrscheinlich

%Vor%     
___ answer12900251 ___

Also ..

Sie können dies tun:

%Vor%

Um ein Objekt zu definieren, das Sie als %code% verwenden können.

So:

%Vor%

Aber sagen Sie, dass Sie es nur als %code% bezeichnen möchten. Dann könnten Sie tun:

%Vor%

oder

%Vor%

und dann verwenden Sie das als:

%Vor%     
___ qstnhdr ___ Wann ist typedef in c zu verwenden? ___ answer12900345 ___

Typedef wird zum Definieren des Benutzerdatentyps verwendet. Zum Beispiel

%Vor%

Nun können Sie int anstelle von int verwenden.

%Vor%     
___ tag123typedef ___ In C und C ++ können Sie mit dem Schlüsselwort typedef einen Alias ​​für einen bekannten Datentyp erstellen. ___ tag123struct ___ Ein Schlüsselwort in verschiedenen Programmiersprachen, deren Syntax C ähnelt oder von C abgeleitet ist (C ++, C #, Swift, Go usw.). Verwenden Sie ein spezielles Programmiersprachen-Tag, um Fragen zu markieren, die die Verwendung einer 'struct' als Syntax beinhalten, und Semantik kann sprachabhängig sein. Schlüsselwort definiert oder deklariert einen Datentyp, der aus anderen Datentypen besteht. Jedes Mitglied einer Struktur hat seinen eigenen Speicherbereich (im Gegensatz zu einer "Union", deren Mitglieder einen einzigen Speicherbereich teilen). ___ tag123c ___ C ist eine universelle Computerprogrammiersprache, die für Betriebssysteme, Bibliotheken, Spiele und andere Hochleistungsanwendungen verwendet wird. Dieses Tag sollte bei allgemeinen Fragen zur C-Sprache verwendet werden, wie in der Norm ISO 9899: 2011 definiert. Fügen Sie ggf. ein versionsspezifisches Tag wie c99 oder c90 für Fragen zu älteren Sprachstandards hinzu. C unterscheidet sich von C ++ und es sollte nicht mit dem C ++ - Tag kombiniert werden, wenn ein rationaler Grund fehlt. ___ answer12900240 ___

Verwenden Sie %code% , wenn Sie einen anderen Namen für einen Typ verwenden möchten, z. eine Struktur.

In Ihrem Fall können Sie anstatt %code% zum Deklarieren einer Variablen verwenden, stattdessen nur %code% als Alias ​​für %code% verwenden.

Aber Sie verpassen den Alias ​​in Ihrer Deklaration:

%Vor%

Dies führt zu demselben Ergebnis, kann jedoch die Ursache Ihres Fehlers besser verdeutlichen:

%Vor%     
___ antwort12903449 ___

Für contants, die eine Liste möglicher Werte einer Variablen sind:

%Vor%

Im Allgemeinen hilft es Ihnen zu wissen, ob Sie die Dinge richtig manipulieren, weil Compiler Sie unter anderem über implizite Castings warnen. Es ist nützlicher als nur Ihren Code lesbarer zu machen.

    
___
jpmuc 15.10.2012 20:26
quelle

Tags und Links