Identyfikatory języka C
"Identyfikatory" lub "symbole" to nazwy, które podajesz dla zmiennych, typów, funkcji i etykiet w programie. Nazwy identyfikatorów muszą się różnić w pisowni i wielkości liter od dowolnych słów kluczowych. Nie można używać słów kluczowych (C lub Microsoft) jako identyfikatorów; są one zarezerwowane do użytku specjalnego. Identyfikator można utworzyć, określając go w deklaracji zmiennej, typu lub funkcji. W tym przykładzie result
jest identyfikatorem zmiennej całkowitej i main
printf
są nazwami identyfikatorów funkcji.
#include <stdio.h>
int main()
{
int result;
if ( result != 0 )
printf_s( "Bad file handle\n" );
}
Po zadeklarowaniu można użyć identyfikatora w późniejszych instrukcjach programu, aby odwołać się do skojarzonej wartości.
W instrukcjach można użyć goto
specjalnej odmiany identyfikatora nazywanej etykietą instrukcji. (Deklaracje są opisane w temacie Etykiety deklaracji i typów instrukcji są opisane w instrukcjach goto i Labeled).
Składnia
identifier
:
nondigit
identifier
nondigit
identifier
digit
nondigit
: jeden z
_ a b c d e f g h i j k l m n o p q r s t u v w x y z
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
digit
: jeden z
0 1 2 3 4 5 6 7 8 9
Pierwszy znak nazwy identyfikatora musi być znakiem nondigit
(czyli pierwszym znakiem musi być podkreślenie lub wielkie lub małe litery). Interfejs ANSI zezwala na sześć znaczących znaków w nazwie identyfikatora zewnętrznego i 31 dla nazw identyfikatorów wewnętrznych (w obrębie funkcji). Identyfikatory zewnętrzne (zadeklarowane w zakresie globalnym lub zadeklarowane za pomocą klasy extern
magazynu) mogą podlegać większym ograniczeniom nazewnictwa, ponieważ te identyfikatory muszą być przetwarzane przez inne oprogramowanie, takie jak konsolidatory.
Specyficzne dla firmy Microsoft
Chociaż anSI zezwala na 6 znaczących znaków w nazwach identyfikatorów zewnętrznych i 31 dla nazw wewnętrznych (w obrębie funkcji), kompilator microsoft C zezwala na 247 znaków w wewnętrznej lub zewnętrznej nazwie identyfikatora. Jeśli nie interesuje Cię zgodność ze standardem ANSI, możesz zmodyfikować tę wartość domyślną tak, aby używała mniejszej lub większej liczby, określając /H
opcję (ogranicz długość nazw zewnętrznych).
END Microsoft Specific
Kompilator języka C uważa wielkie i małe litery za odrębne znaki. Ta funkcja, nazywana "poufnością liter", umożliwia tworzenie unikatowych identyfikatorów, które mają takie same pisownię, ale różne przypadki dla co najmniej jednej litery. Na przykład każdy z następujących identyfikatorów jest unikatowy:
add
ADD
Add
aDD
Specyficzne dla firmy Microsoft
Nie wybieraj nazw identyfikatorów rozpoczynających się od dwóch podkreśleń lub podkreślenia, po których następuje wielka litera. Standard ANSI C umożliwia stosowanie nazw identyfikatorów rozpoczynających się od tych kombinacji znaków do użycia kompilatora. Identyfikatory z zakresem na poziomie pliku również nie powinny być nazwane znakiem podkreślenia i małą literą jako dwie pierwsze litery. Nazwy identyfikatorów rozpoczynające się od tych znaków są również zastrzeżone. Zgodnie z konwencją firma Microsoft używa podkreślenia i wielkiej litery, aby rozpocząć nazwy makr i podwójne podkreślenia dla nazw słów kluczowych specyficznych dla firmy Microsoft. Aby uniknąć konfliktów nazewnictwa, zawsze wybieraj nazwy identyfikatorów, które nie zaczynają się od jednego lub dwóch podkreśleń, lub nazw rozpoczynających się od podkreślenia, po którym następuje wielka litera.
END Microsoft Specific
Poniżej przedstawiono przykłady prawidłowych identyfikatorów zgodnych z ograniczeniami ANSI lub Microsoft nazewnictwa:
j
count
temp1
top_of_page
skip12
LastNum
Specyficzne dla firmy Microsoft
Chociaż identyfikatory w plikach źródłowych są domyślnie uwzględniane wielkości liter, symbole w plikach obiektów nie są. Język Microsoft C traktuje identyfikatory w jednostce kompilacji jako uwzględniane wielkości liter.
W konsolidatorze firmy Microsoft jest uwzględniana wielkość liter. Należy stale określać wszystkie identyfikatory zgodnie z wielkością liter.
Zestaw znaków źródłowych to zestaw znaków prawnych, które mogą być wyświetlane w plikach źródłowych. W przypadku firmy Microsoft C zestaw źródłowy jest standardowym zestawem znaków ASCII. Źródłowy zestaw znaków i zestaw znaków wykonywania zawierają znaki ASCII używane jako sekwencje ucieczki. Zobacz Stałe znaków, aby uzyskać informacje o zestawie znaków wykonywania.
END Microsoft Specific
Identyfikator ma "zakres", czyli region programu, w którym jest znany. Ma również "połączenie", które określa, czy ta sama nazwa w innym zakresie odnosi się do tego samego identyfikatora. Te terminy zostały wyjaśnione w sekcji Okres istnienia, Zakres, Widoczność i Łączenie.