Freigeben über


C-Spezifizierer

Typspezifizierer in der Deklaration definiert den Typ einer Variablen oder Funktionsdeklaration.

Syntax

  • Typspezifizierer:
    void

    char

    short

    int

    long

    float

    double

    mit Vorzeichen

    unsigned

    Bezeichner Struktur-oder-UNION

    Spezifizierer Enumeration

    TypedefNAME

char mit Vorzeichen, Signierte int, kurze ganze Zahl mit Vorzeichenund long ganze Zahl mit Vorzeichen-Typen, zusammen mit ihren Äquivalenten unsigned werden enum„und“ ganzzahlige Typen bezeichnet.float, doubleund long double-Typspezifizierer so genannte „Schwimmen“ oder „Float“ die Typen.Sie können einen beliebigen Integral- Parameterbezeichner Gleitkommatyp oder in einer Variablen oder einer Funktionsdeklaration verwenden.Wenn ein Typspezifizierer nicht in einer Deklaration angegeben wird, wird sie übernommen, um intsein.

Die optionalen Schlüsselwörter Signiert und unsigned können jedem beliebigen ganzzahligen Typen befinden oder folgen, außer enumund können auch alleine als Typspezifizierer verwendet werden. In diesem Fall werden sie als Signierte int und unsigned intverstanden werden.Wenn das Schlüsselwort nicht verwendet wird, wird angenommen, dass intSigniertsein.Wenn die Schlüsselwörter long allein verwendet wird, und short , werden als long int und short intverstanden.

Enumerationstypen werden als einfache Typen.Typspezifizierer für Enumerationstypen sind in Enumerations-Deklarationenerläutert.

Das Schlüsselwort void verfügt über drei verwendet: für einen Funktionsrückgabetyp angeben, um eine Liste der Argumenttypen für die Funktion angeben, die keine Argumente akzeptiert und einen Zeiger auf einen nicht angegebenen Typ anzugeben.Sie können den void-Typ verwenden, um Funktionen zu deklarieren, die keinen Wert zurückgeben oder einen Zeiger auf einen nicht angegebenen Typ zu deklarieren.Weitere Informationen dazu finden Sie unter Argumentevoid , wenn sie nicht innerhalb der Klammern nach einem Funktionsnamen angezeigt wird.

Microsoft-spezifisch

Typüberprüfung ist jetzt ANSI-kompatibel. Dies bedeutet, dass dieser Typ short und Typ int unterschiedliche Typen aufweisen.Zum Beispiel ist dies eine Neudefinition in Microsoft C-Compiler, der in älteren Versionen des Compilers angenommen wurde.

int   myfunc();
short myfunc();

Im folgenden Beispiel wird ebenfalls eine Warnung zur Dereferenzierung zu den verschiedenen Arten:

int *pi;
short *ps;

ps = pi;  /* Now generates warning */

Der Microsoft C-Compiler generiert auch Warnungen für Unterschiede im Zeichens.Beispiele:

signed int *pi;
unsigned int *pu

pi = pu;  /* Now generates warning */

Typ void Ausdrücke sind für Nebeneffekte ausgewertet.Sie können den (nicht vorhanden) Wert eines Ausdrucks verwenden, der Typ void auf irgendeine Weise hat, noch können Sie einen Ausdruck void (durch implizite oder explizite Konvertierung) in einen beliebigen Typs außer voidkonvertieren.Wenn Sie einen Ausdruck aus einem beliebigen anderen verwenden, geben Sie einen Kontext, in dem ein void Ausdruck erforderlich ist, der Wert wird verworfen.

Zum Anpassen der ANSI-Spezifikation void ** kann nicht als ** intverwendet werden.Nur void* kann als Zeiger auf einen nicht angegebenen Typ verwendet werden.

Microsoft ENDES bestimmten

Sie können zusätzliche Typspezifizierer mit typedef Deklarationen erstellen, wie in Typedef-Deklarationenbeschrieben.Weitere Informationen dazu finden Sie unter Speicherung von einfachen Typen die Größe jedes Typs.

Siehe auch

Konzepte

Deklarationen und Typen