const 특성
const 키워드(keyword) 형식 선언의 형식 또는 함수 매개 변수의 형식을 수정하여 값이 달라지는 것을 방지합니다.
const const-type identifier = const-expression ;
[ typedef [ , type-attribute-list ] ] const const-type declarator-list;
[ typedef [ , type-attribute-list ] ] pointer-type const declarator-list;
[ [ function-attr-list ] ] type-specifier [ ptr-decl ] function-name(
[ [ parameter-attribute-list ] ] ) const;
const-type [declarator], [ [ parameter-attribute-list ] ] pointer-type const [declarator], ...);
매개 변수
-
const-type
-
유효한 MIDL 정수, 문자, 문자열 또는 부울 형식을 지정합니다. 유효한 MIDL 형식에는 작은, 짧은, 긴, char, char *, wchar_t, wchar_t *, 바이트, 바이트 * 및 void *가 포함됩니다. 정수 및 문자 형식은 부호 가 있거나 서명되지 않을 수 있습니다.
-
identifier
-
유효한 MIDL 식별자를 지정합니다. 유효한 MIDL 식별자는 최대 31개의 영숫자 및/또는 밑줄 문자로 구성되며 알파벳 또는 밑줄 문자로 시작해야 합니다.
-
const-expression
-
지정된 형식에 적합한 식, 식별자 또는 숫자 또는 문자 상수( 상수 정수 리터럴 또는 정수 상수 식)를 지정합니다. 부울 형식에 대한 컴파일 시 계산할 수 있는 부울 식; char 형식에 대한 단일 문자 상수; 및 [string] 형식에 대한 문자열 상수입니다. void * 형식은 NULL로만 초기화할 수 있습니다.
-
type-attribute-list
-
형식에 적용되는 하나 이상의 특성을 지정합니다.
-
pointer-type
-
유효한 MIDL 포인터 형식을 지정합니다.
-
declarator 및 declarator-list
-
식별자, 포인터 선언자 및 배열 선언자와 같은 표준 C 선언자를 지정합니다. 자세한 내용은 배열 및 Sized-Pointer 특성, 배열 및 배열 및 포인터를 참조하세요. 선언자 목록은 하나 이상의 선언자로 구성되며 쉼표로 구분됩니다. 함수 선언자의 매개 변수 이름 식별자는 선택 사항입니다.
-
function-attr-list
-
함수에 적용되는 0개 이상의 특성을 지정합니다. 유효한 함수 특성은 [콜백], [로컬]입니다. 포인터 특성 [ref], [unique]또는 [ptr]; 및 사용 특성 [string], [ignore] 및 [context_handle].
-
type-specifier
-
base_type, 구조체, 공용 구조체, 열거형 형식 또는 형식 식별자를 지정합니다. 선택적 스토리지 사양은 형식 지정자보다 우선할 수 있습니다.
-
ptr-decl
-
포인터 선언자를 0개 이상 지정합니다. 포인터 선언자는 C에서 사용되는 포인터 선언자와 동일합니다. 지정자, 한정자(예: 멀리) 및 한정자 const에서 * 생성됩니다.
-
function-name
-
원격 프로시저의 이름을 지정합니다.
-
parameter-attribute-list
-
지정된 매개 변수 형식에 적합한 0개 이상의 방향 특성, 필드 특성, 사용 특성 및 포인터 특성을 지정합니다. 여러 특성을 쉼표로 구분합니다.
설명
MIDL을 사용하면 IDL 파일의 인터페이스 본문에서 상수 정수, 문자, 문자열 및 부울 형식을 선언할 수 있습니다. Const 형식 선언은 생성된 헤더 파일에서 #define 지시문으로 재현됩니다.
DCE IDL 컴파일러에서는 상수 식을 지원하지 않습니다. 따라서 MIDL 컴파일러 /osf 스위치를 사용하는 경우 이 기능을 사용할 수 없습니다.
이전에 정의된 상수를 후속 상수의 할당된 값으로 사용할 수 있습니다. 상수 정수 식의 값은 C 변환 규칙에 따라 해당 정수 형식으로 자동으로 변환됩니다.
문자 상수의 값은 따옴표로 묶은 ASCII 문자여야 합니다. 문자 상수가 작은따옴표 문자 자체(')인 경우 백슬래시 문자(\)는 \'와 같이 작은따옴표 문자 앞에 와야 합니다.
문자열 상수의 값은 큰따옴표가 붙은 문자열이어야 합니다. 문자열 내에서 백슬래시(\) 문자는 \"와 같이 리터럴 큰따옴표 문자( " ) 앞에 와야 합니다. 문자열 내에서 백슬래시 문자(\)는 이스케이프 문자를 나타냅니다. 문자열 상수는 최대 255자로 구성됩니다.
값 NULL은 void *형식의 상수에 대해 유효한 유일한 값입니다. const 선언과 연결된 모든 특성은 무시됩니다.
MIDL 컴파일러는 const 초기화에서 범위 오류에 대해 검사 않습니다. 예를 들어 "const short x = 0xFFFFFFFF;"을 지정하면 MIDL 컴파일러가 오류를 보고하지 않고 이니셜라이저가 생성된 헤더 파일에서 재현됩니다.
예
const void * p1 = NULL;
const char my_char1 = 'a';
const char my_char2 = my_char1;
const wchar_t my_wchar3 = L'a';
const wchar_t * pszNote = L"Note";
const unsigned short int x = 123;
typedef [string] const char *LPCSTR;
HRESULT GetName([out] wchar_t * const pszName );
참고 항목