- マクロ代入( #define )
- プログラムのプロパティ (#property)
- ファイルの読み込み (#include)
- 関数のインポート( #import )
- 条件付きコンパイル( #ifdef、#ifndef、#else、#endif )
매크로 대체 (#define)
프리프로세서 명령문은 컴파일하기 전에 소스 코드를 전처리하는 데 사용됩니다. 명령문은 항상 #로 시작하므로 컴파일러는 변수, 함수 등의 이름에 기호를 사용할 수 없습니다.
각 명령문은 별도의 항목으로 설명되며 줄 바꿈까지 유효합니다. 한 항목에는 여러 명령문을 사용할 수 없습니다. 지시어 입력이 너무 크면 '\' 기호를 사용하여 여러 줄로 구분할 수 있습니다. 이 경우 다음 행은 명령문 입력의 연속으로 간주됩니다.
#define 명령문을 사용하여 니모닉 이름을 상수에 할당할 수 있습니다. 두가지 형태가 있습니다:
#define identifier expression // 매개 변수가 없는 포맷
|
#define 명령문은 다음을 표현식으로 대체합니다: 원본 텍스트에서 추가로 발견된 식별자의 모든 항목. 식별자는 별도의 토큰인 경우에만 대체됩니다. 식별자는 주석, 문자열 또는 다른 긴 식별자의 일부인 경우 대체되지 않습니다.
상수 식별자는 변수 이름과 동일한 규칙에 의해 제어됩니다. 값은 모든 유형이 될 수 있습니다:
#define ABC 100
|
표현식은 키워드, 상수, 상수 및 비변환 식과 같은 여러 토큰으로 구성될 수 있습니다. 표현식은 행의 끝으로 끝나며 다음 행으로 전송할 수 없습니다.
예제:
#define TWO 2
|
Parametric Form #define
파라메트릭 형태를 사용하면 이후 발견된 모든 식별자 항목이 실제 매개변수를 고려한 식으로 대체됩니다. 예:
// 두 개의 매개 변수가 a 및 b인 예제
|
식에서 매개 변수를 사용할 때는 매개 변수를 괄호로 묶어야 합니다. 이렇게 하면 쉽게 찾을 수 없는 오류를 방지할 수 있습니다. 대괄호를 사용하지 않고 코드를 다시 쓰면 결과가 달라집니다:
// 두 개의 매개 변수가 a 및 b인 예제
|
모수 형식을 사용할 경우 최대 8개의 모수가 허용됩니다.
// 올바른 매개변수 형식
|
#undef 명령문
#undef 명령문은 이전에 정의된 매크로 대체의 선언을 취소합니다.
예제:
#define MACRO
|
더 보기