다음을 통해 공유


#define 지시어(상수)

애플리케이션의 상수에 의미 있는 이름을 할당하는 전처리기 지시문입니다.

#define identifiertoken-string

매개 변수

항목 설명
identifier
상수의 식별자입니다.
token-string [선택 사항]
상수의 값입니다. 이 매개 변수는 키워드, 상수 또는 완전한 문과 같은 일련의 토큰으로 구성됩니다. 하나 이상의 공백 문자로 이 매개 변수를 identifier 매개 변수와 구분해야 합니다. 이 공백은 대체 텍스트의 일부로 간주되지 않으며 텍스트의 마지막 토큰 뒤에 오는 공백도 아닙니다.
이 매개 변수를 제외하면 identifier 매개 변수의 모든 인스턴스가 원본 파일에서 제거됩니다. 식별자는 정의된 상태로 유지되며 #if defined, #ifdef 및 #ifndef 지시문을 사용하여 테스트할 수 있습니다.

설명

원본 파일에서 #define 지시문 다음에 발생하는 identifier 매개 변수의 모든 인스턴스는 token-string 매개 변수의 값으로 바꿔집니다. 식별자는 토큰을 형성할 때만 바꿔집니다. 예를 들어, 주석, 문자열 또는 더 긴 식별자의 일부로 나타나는 식별자는 바꿔지지 않습니다.

#undef 지시어는 전처리기에 식별자 정의를 잊도록 지시합니다. 자세한 내용은 #undef 지시문(DirectX HLSL)을 참조하세요.

/D 컴파일러 옵션으로 상수를 정의하면 파일 시작 부분에서 #define 지시문을 사용하는 것과 동일한 효과가 있습니다. /D 옵션으로 최대 30개의 상수를 정의할 수 있습니다. 사용 방법에 대한 예는 #ifdef 및 )의 예 섹션을 참조하세요.

예제

다음 예에서는 식별자 WIDTH를 정수 상수 80으로 정의한 다음 LENGTH를 WIDTH 및 정수 상수 10으로 정의합니다.

#define WIDTH       80
#define LENGTH      ( WIDTH + 10 )

LENGTH의 모든 후속 인스턴스는(WIDTH + 10)으로 바꿔지고 WIDTH + 10의 모든 후속 인스턴스는 식(80 + 10)으로 바꿔집니다. WIDTH + 10 주변의 괄호는 다음과 같은 문장의 해석을 제어하기 때문에 중요합니다.

var = LENGTH * 20;

전처리 단계 후 문은 다음과 같이 1,800으로 평가됩니다.

var = ( 80 + 10 ) * 20;

괄호가 없으면 결과는 다음과 같으며 280으로 평가됩니다.

var = 80 + 10 * 20;

전처리기 지시문(DirectX HLSL)

#define Overloads

#undef 지시어(DirectX HLSL)