C 식별자C Identifiers

"식별자" 또는 "기호"는 프로그램에서 변수, 형식, 함수 및 레이블에 제공하는 이름입니다."Identifiers" or "symbols" are the names you supply for variables, types, functions, and labels in your program. 식별자 이름은 어떤 키워드와도 철자 및 대/소문자가 달라야 합니다.Identifier names must differ in spelling and case from any keywords. C 또는 Microsoft 키워드를 식별자로 사용할 수 없습니다. 이러한 키워드는 특별한 용도로 예약되어 있습니다.You cannot use keywords (either C or Microsoft) as identifiers; they are reserved for special use. 식별자는 변수, 형식 또는 함수 선언에서 지정하여 만듭니다.You create an identifier by specifying it in the declaration of a variable, type, or function. 이 예제에서 result는 정수 변수에 대한 식별자이며, mainprintf는 함수에 대한 식별자 이름입니다.In this example, result is an identifier for an integer variable, and main and printf are identifier names for functions.

#include <stdio.h>  

int main()  
{  
    int result;  

    if ( result != 0 )  
        printf_s( "Bad file handle\n" );  
}  

식별자가 선언되면 이후 프로그램 문에서 식별자를 사용하여 관련 값을 참조할 수 있습니다.Once declared, you can use the identifier in later program statements to refer to the associated value.

문 레이블이라는 특수한 종류의 식별자는 goto 문에서 사용할 수 있습니다.A special kind of identifier, called a statement label, can be used in goto statements. 선언은 선언 및 형식에서 설명하고, 문 레이블은 goto 및 Labeled 문에서 설명합니다.(Declarations are described in Declarations and Types Statement labels are described in The goto and Labeled Statements.)

구문Syntax

identifier:identifier:
nondigitnondigit

identifier nondigitidentifier nondigit

identifier digitidentifier digit

nondigit: 다음 중 하나nondigit: one of
_ 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

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 ZA 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: 다음 중 하나digit: one of
0 1 2 3 4 5 6 7 8 90 1 2 3 4 5 6 7 8 9

식별자 이름의 첫 번째 문자는 nondigit여야 합니다. 즉, 첫 번째 문자는 밑줄 또는 대문자나 소문자여야 합니다.The first character of an identifier name must be a nondigit (that is, the first character must be an underscore or an uppercase or lowercase letter). ANSI는 외부 식별자 이름에서 6개의 유효한 문자를 허용하고 내부(함수 내) 식별자의 이름에 대해 31자를 허용합니다.ANSI allows six significant characters in an external identifier's name and 31 for names of internal (within a function) identifiers. 외부 식별자(전역 범위에서 선언되거나 extern 저장소 클래스로 선언된 식별자)는 링커 등의 다른 소프트웨어에서 처리되어야 하므로 추가 명명 제한이 적용될 수 있습니다.External identifiers (ones declared at global scope or declared with storage class extern) may be subject to additional naming restrictions because these identifiers have to be processed by other software such as linkers.

Microsoft 전용Microsoft Specific

ANSI는 외부 식별자 이름에서 6개의 유효한 문자를 허용하고 내부(함수 내) 식별자 이름에 대해 31자를 허용하지만, Microsoft C 컴파일러는 내부 또는 외부 식별자 이름에서 247자를 허용합니다.Although ANSI allows 6 significant characters in external identifier names and 31 for names of internal (within a function) identifiers, the Microsoft C compiler allows 247 characters in an internal or external identifier name. ANSI 호환성을 고려하지 않는 경우 /H(외부 이름의 길이 제한) 옵션을 사용하여 이 기본값을 더 작거나 큰 수로 수정할 수 있습니다.If you aren't concerned with ANSI compatibility, you can modify this default to a smaller or larger number using the /H (restrict length of external names) option.

Microsoft 전용 종료END Microsoft Specific

C 컴파일러는 대문자 및 소문자를 고유한 문자로 간주합니다.The C compiler considers uppercase and lowercase letters to be distinct characters. "대/소문자 구분"이라는 이 기능을 통해 철자는 동일하지만 하나 이상의 문자에 대한 대/소문자가 다른 고유한 식별자를 만들 수 있습니다.This feature, called "case sensitivity," enables you to create distinct identifiers that have the same spelling but different cases for one or more of the letters. 예를 들어 다음 각 식별자는 고유합니다.For example, each of the following identifiers is unique:

add  
ADD  
Add  
aDD  

Microsoft 전용Microsoft Specific

두 개의 밑줄 또는 밑줄 뒤에 대문자로 시작하는 이름을 식별자 이름으로 선택하지 마십시오.Do not select names for identifiers that begin with two underscores or with an underscore followed by an uppercase letter. ANSI C 표준에서는 이러한 문자 조합으로 시작하는 식별자 이름을 컴파일러용으로 예약할 수 있습니다.The ANSI C standard allows identifier names that begin with these character combinations to be reserved for compiler use. 파일 수준 범위의 식별자도 밑줄과 소문자를 처음 두 문자로 사용하여 이름을 지정하면 안 됩니다.Identifiers with file-level scope should also not be named with an underscore and a lowercase letter as the first two letters. 이러한 문자로 시작되는 식별자 이름도 예약되어 있습니다.Identifier names that begin with these characters are also reserved. 규칙에 따라 Microsoft는 밑줄과 대문자를 사용하여 매크로 이름을 시작하고 두 개의 밑줄을 사용하여 Microsoft 관련 키워드 이름을 시작합니다.By convention, Microsoft uses an underscore and an uppercase letter to begin macro names and double underscores for Microsoft-specific keyword names. 명명 충돌을 방지하려면 항상 한두 개의 밑줄로 시작하지 않거나 밑줄 뒤에 대문자로 시작하지 않는 식별자 이름을 선택합니다.To avoid any naming conflicts, always select identifier names that do not begin with one or two underscores, or names that begin with an underscore followed by an uppercase letter.

Microsoft 전용 종료END Microsoft Specific

ANSI 또는 Microsoft 명명 제한을 따르는 올바른 식별자의 예는 다음과 같습니다.The following are examples of valid identifiers that conform to either ANSI or Microsoft naming restrictions:

j  
count  
temp1  
top_of_page  
skip12  
LastNum  

Microsoft 전용Microsoft Specific

소스 파일의 식별자가 기본적으로 대/소문자를 구분하지만 개체 파일의 기호는 그렇지 않습니다.Although identifiers in source files are case sensitive by default, symbols in object files are not. Microsoft C는 컴파일 단위 내 식별자를 대/소문자를 구분하는 것으로 간주합니다.Microsoft C treats identifiers within a compilation unit as case sensitive.

Microsoft 링커는 대/소문자를 구분합니다.The Microsoft linker is case sensitive. 대/소문자에 따라 일관성 있게 모든 식별자를 지정해야 합니다.You must specify all identifiers consistently according to case.

"소스 문자 집합"은 소스 파일에 나타날 수 있는 올바른 문자 집합입니다.The "source character set" is the set of legal characters that can appear in source files. Microsoft C의 경우 소스 집합은 표준 ASCII 문자 집합입니다.For Microsoft C, the source set is the standard ASCII character set. 소스 문자 집합과 실행 문자 집합에는 이스케이프 시퀀스로 사용되는 ASCII 문자가 포함됩니다.The source character set and execution character set include the ASCII characters used as escape sequences. 실행 문자 집합에 대한 자세한 내용은 문자 상수를 참조하세요.See Character Constants for information about the execution character set.

Microsoft 전용 종료END Microsoft Specific

식별자에는 해당 식별자가 알려져 있는 프로그램의 영역인 "범위"가 있으며 다른 범위의 같은 이름이 같은 식별자를 참조하는지 여부를 결정하는 "링크"가 있습니다.An identifier has "scope," which is the region of the program in which it is known, and "linkage," which determines whether the same name in another scope refers to the same identifier. 이러한 항목은 수명, 범위, 표시 유형 및 링크에 설명되어 있습니다.These topics are explained in Lifetime, Scope, Visibility, and Linkage.

참고 항목See Also

C 요소Elements of C