최상의 답변
#define은 C 언어의 전 처리기 문입니다.
# 접두사가 붙은 모든 문은 전 처리기입니다. 문.
1.
#define MAX\_STUDENTS 200
#define은 위에 표시된대로 매크로 상수 (모든 유형)를 선언합니다. 값이 코드에서 여러 자리를 사용하면 코드의 유지 관리가 쉬워집니다. MAX\_STUDENTS의 값을 변경해야하는 경우 여러 위치가 아닌 한 줄의 코드로만 변경하면됩니다.
이 방식의 단점은 디버거이며이 값을 인식하지 못합니다.
int arr [MAX\_STUDENTS];
아래와 같이 조건부 컴파일에서도 사용할 수 있습니다.
#define WINDOWS
#ifdef WINDOWS
..
.. code of Windows OS
..
#else
..
.. code of Linux OS
..
#endif
참고 : #undef를 사용하여 정의를 해제 할 수 있습니다.
2.
#define SQUARE (x) (x * x)
매크로 함수는 런타임 중에 함수를 호출하는 대신 전처리 기가 메서드 호출을 대체한다는 점을 제외하면 일반 함수와 같습니다.
장점은 함수 호출 오버 헤드가 없어서 실행이 더 빠르다는 것입니다.
SQUARE (2 + 3)
단점은 매크로 함수가 일반 함수처럼 작동하지 않는다는 것입니다. 예를 들어, 위의 매크로 호출 SQUARE (2 + 3)를 생각해 보면 잘못된 값 11이 발생하는데, 정상 함수는 25를 반환합니다.
크기가 큰 경우 매크로 함수 (일반 함수 대신)를 사용하는 것이 좋습니다. 위와 같이 한두 줄이며 부작용이 없습니다.
답변
#define은 C입니다. 전 처리기 지시문 매크로 를 정의하는 데 사용됩니다.
그것을 분석 해보자.
전 처리기 지시문은 프로그램 컴파일이 일어나기 전에 호출되는 프로그램 명령문입니다. 실제로는 # 문자는 전 처리기입니다. 여기에는 include drective도 포함됩니다. 전 처리기 지시문은 사용되는 일반 지침 또는 필수 데이터를 제공하는 데 사용됩니다. 프로그램 내부.
매크로는 이름이 부여 된 코드 블록입니다. 매크로의 값에 따라 달라집니다. 값이 200 인 AMOUNT라는 매크로를 정의했습니다. 이제 프로그램에서 AMOUNT라는 단어가 사용될 때마다 컴파일 전에 숫자 200으로 대체됩니다. 데이터가 실제로 내부에 저장되는 변수와 달리 매크로는 별칭 이름처럼 작동합니다.
#define 지시문의 구문은 다음과 같습니다.
#define MACRONAME value
OR
#define MACRONAME (expression)
매크로에는 숫자 및 문자 (따옴표 안에 있어야 함) 값을 할당 할 수 있습니다. 매크로는 다음과 같이 사용할 수 있습니다. 기타 모든 상수 변수.
#undef 지시문을 사용하여 매크로 정의를 해제 할 수도 있습니다. 구문은 다음과 같습니다.
#undef MACRONAME
//MACRONAME can no longer be used in the program
내 답변이 도움이 되었기를 바랍니다.