Specyfikatory typu c
Specyfikatory typu w deklaracji definiują typ deklaracji zmiennych lub funkcji.
Składnia
Specyfikator typu:
nieważneCHAR
krótkie
int
długie
Pływak
podwójne
podpisane
niepodpisane
Specyfikator struct lub Unii
Specyfikator Enum
Nazwa elementu TypeDef
Podpisane char, podpisane int, podpisane krótkie int, i podpisane long int typów, wraz z ich unsigned odpowiednikami i enum, są nazywane "integralną" typy.Pływaka, double, i long double specyfikatorze typu są określane jako "ruchomy" lub "zmiennoprzecinkowych" typów.Można użyć dowolnego specyfikatora typu integralną lub zmiennoprzecinkowych w deklaracji zmiennej lub funkcji.Jeśli specyfikatora typu nie został podany w deklaracji, przyjmuje się int.
Opcjonalne słowa kluczowe podpisane i unsigned może poprzedzać lub wykonaj dowolne typy zintegrowane, z wyjątkiem enumi mogą być używane również samodzielnie w specyfikatorze typu, w którym to przypadku one są rozumiane jako podpisane int i unsigned int, odpowiednio.Gdy użyty samodzielnie, słowo kluczowe int zakłada się, że podpisane.Gdy użyty samodzielnie, słowa kluczowe long i krótki są rozumiane jako long int i short int.
Wyliczanie typy są uznawane za podstawowe typy.Specyfikatory typu dla typów wyliczenia są omówione w Deklaracji wyliczenia.
Słowo kluczowe void ma trzy zastosowań: Aby określić, funkcja zwraca typ, aby określić listę typ argumentu dla funkcji, która nie przyjmuje żadnych argumentów i określić wskaźnik do nieokreślonego typu.Można użyć void typu zadeklarować funkcji, które zwracają żadnej wartości lub zadeklarować wskaźnika dla nieokreślonego typu.Zobacz argumenty Aby uzyskać informacje o void gdy pojawia się wyłącznie w nawiasie po nazwie funkcji.
Programu Microsoft
Sprawdzanie typu teraz jest standardem ANSI, co oznacza, że typ krótki i typu int są odrębne typy.Na przykład jest przedefiniowanie w kompilatora Microsoft C, który został przyjęty przez poprzednie wersje kompilatora.
int myfunc();
short myfunc();
W tym przykładzie dalej również generuje ostrzeżenie dotyczące pośrednia do różnych typów:
int *pi;
short *ps;
ps = pi; /* Now generates warning */
Kompilator Microsoft C również generuje ostrzeżenia dla różnic w znak.Na przykład:
signed int *pi;
unsigned int *pu
pi = pu; /* Now generates warning */
Typ void wyrażenia są przetwarzane dla efektów ubocznych.Nie można używać wartości (nieistniejący) wyrażenie, które ma typ void w każdy sposób ani can konwersji void wyrażenie (poprzez konwersję jawną lub niejawną) do dowolnego typu, z wyjątkiem void.Jeśli użyć wyrażenia innego typu, w kontekście gdzie void wyrażenie jest wymagane, jego wartość jest odrzucany.
Być zgodny ze specyfikacją standardu ANSI void ** nie może być używany jako int **.Tylko void * może być używany jako wskaźnik do nieokreślonego typu.
KONIEC Microsoft szczególne
Można utworzyć dodatkowe typu Specyfikatory z typedef deklaracji, zgodnie z opisem w Deklaracje Typedef.Zobacz Magazyn podstawowe typy informacji na temat rozmiar każdego typu.