조건부 컴파일이란 무엇입니까?
컴퓨터 프로그래밍에서 조건부 컴파일은 소프트웨어 프로그래밍 또는 소스 코드 프로세서가 기술적으로 핵심 프로그래밍 언어 사양의 일부가 아닌 언어 별 명령어를 기반으로 특정 명령 또는 코드 블록을 포함하거나 무시하는 기능을 설명합니다. 프로그램에서 조건부 컴파일을 트리거하는 데 사용되는 명령을 전 처리기 지시문이라고도하지만 컴파일러 지시문, 조건부 주석 또는 조건부 정의라고도합니다. 사용되는 컴파일러 또는 언어에 따라 조건부 지시문은 사용자 정의 변수 또는 매크로 일 수도 있고 컴파일러 또는 운영 체제에서 설정 한 시스템 변수 일 수도 있습니다. 조건부 컴파일은 단일 소스 코드 파일 세트를 구성하는 데 자주 사용되므로 소스 파일을 교환하거나 변경하지 않고도 다른 환경이나 운영 체제에서 컴파일 할 수 있습니다.
조건부 컴파일을 테스트하는 데 사용되는 조건부 정의는 언어마다 다를 수 있지만 일반적으로 일반 프로그램 변수 범위를 벗어난 매크로 또는 기타 메타 데이터 식입니다. C와 같은 언어에서 변수는 일반적으로 전 처리기에서 읽은 매크로입니다. 대부분의 경우 매크로는 동일한 소스 파일에 존재하더라도 실제 실행 가능한 프로그램 소스 코드로 액세스 할 수 없습니다.
정의 된 조건부 변수를 테스트하는 데 사용되는 지시문은 기초적이며 if-then 문과 동일한 논리를 따릅니다. 조건부 컴파일에 대해 수행 할 수있는 기본 테스트는 값이 정의되어 있는지 여부, 정의되지 않은 경우 또는 정의 된 두 변수가 같은지 여부입니다. 변수 나 매크로 자체는 일반적으로 중요도를 갖지 않습니다. 변수를 정의하는 작업은 지시문이 확인하는 것이기 때문입니다. 그러나 일부 언어 및 컴파일러에서는 부울 상태에 대해 평가 된 경우 정의 된 변수의 값이 중요 할 수 있습니다.
컴파일러가 조건부 컴파일에 사용 된 지시문을 발견하면 지시문이 참인지 거짓인지 테스트합니다. true 인 경우 지시문을 따르는 코드는 정상적으로 컴파일됩니다. 그렇지 않으면 컴파일러는 지시문에 포함 된 코드를 완전히 건너 뜁니다. 실행 가능한 프로그램 코드 자체의 조건부 논리 문과는 달리, 논리에 실행할 수없는 코드 블록이 있어도 대부분의 경우 해석되고 컴파일되기 때문입니다. 조건부 전 처리기 지시문을 사용하면 건너 뛴 코드가 포함, 해석 또는 컴파일되지 않습니다. 또한 전처리 기가 모든 조건부 변수와 지시문을 평가 한 후에는 컴파일러에게 방향을 제공하기위한 목적으로 나머지 프로그램으로 컴파일되지 않습니다.
조건부 컴파일은 대부분 특정 운영 체제 또는 환경에 특정한 코드를 포함하거나 제외하는 데 사용됩니다. 이는 지시문이 프로그램이 해당 운영 체제에서 컴파일되고 있다고 판별하는 경우 하나의 운영 체제에 존재하는 라이브러리를 조건부로 포함 할 수 있음을 의미합니다. 또는 지시문을 사용하여 사용자 정의 변수를 기반으로 코드를 포함하거나 제외 할 수도 있습니다. 이렇게하면 디버깅 또는 프로파일 링 코드가 프로그램의 최종 버전에 포함되지 않으므로 별도의 코드 사본을 유지하지 않고도 특정 기능을 활성화 또는 비활성화 할 수 있습니다.