전처리기란 무엇입니까?

일반적으로 컴퓨팅에서 프로세서라고 하면 연산을 수행하는 일종의 실리콘 칩을 의미합니다. CPU, GPU, APU, NPU 및 기타 여러 형태의 논리 칩에서 P는 "처리", 즉 중앙 처리 장치를 나타냅니다. 각각은 특정 기능에 최적화된 특정 유형의 프로세서입니다. 그러나 전처리기는 CPU나 GPU와 같은 물리적 프로세서와 아무 관련이 없습니다. 대신, 특히 컴파일된 언어와 관련된 프로그래밍 용어입니다.

컴파일러란 무엇입니까?

컴파일러는 특정 프로그래밍 언어를 기계 코드로 컴파일하는 소프트웨어입니다. 사용 가능한 프로그래밍 언어를 구성하는 사람이 읽을 수 있는 명령은 컴퓨터에서 직접 실행할 수 없기 때문에 모든 프로그래밍 언어는 기계 코드로 변환되어야 합니다. 일부는 코드가 실행될 때 즉석에서 해석되도록 설계되었습니다. 이 접근 방식은 매우 유연하여 사소한 변경을 쉽게 수행할 수 있습니다. 그러나 다른 많은 프로그래밍 언어를 실행하려면 컴파일해야 합니다. 작은 프로그램에서는 이것이 반드시 오래 걸리지는 않습니다. 그러나 더 큰 프로그램을 사용하면 컴파일에 몇 분 또는 몇 시간이 걸릴 수 있습니다.

그렇다면 컴파일이 필요한 언어를 사용하려는 이유는 무엇입니까? 음, 리버스 엔지니어링이 더 어렵습니다. 해석된 프로그래밍 언어는 종종 코드를 있는 그대로 배포하므로 쉽게 "도용"할 수 있습니다. 지적 재산을 보호하고자 하는 회사의 경우 컴파일은 실제 코드를 보기 위해 복잡하고 신뢰할 수 없는 리버스 엔지니어링 단계를 삽입합니다. 컴파일된 소프트웨어는 실행에 최적화되어 있기 때문에 더 작은 경향이 있습니다. 이것은 실제로 작은 스크립트에서는 문제가 되지 않지만 크기가 수백 메가바이트 또는 기가바이트인 대형 소프트웨어를 처리할 때 눈에 띄는 영향을 미칠 수 있습니다.

그렇다면 전처리기는 무엇을 할까요?

전처리기는 코드가 컴파일되기 전에 실행되는 유틸리티입니다. 일반적으로 컴파일러는 시작할 때 전처리기를 자동으로 호출하지만 별도로 실행할 수도 있습니다. 전처리기의 역할은 코드를 의도한 대로 정확하게 설정하는 것입니다. 주로 검색 및 바꾸기 기능을 수행하여 수행합니다.

예를 들어 C에서는 여러 표준 라이브러리를 사용하는 것이 표준 관행입니다. 이러한 라이브러리는 표준 기능을 제공하는 일련의 함수를 정의합니다. 이러한 라이브러리를 가져오려면 "#include" 키워드 뒤에 라이브러리 이름이 사용됩니다. 전처리기는 코드에서 "#include"와 같은 명령문을 검색하여 교체합니다. "#include"의 경우 전처리기는 지정된 라이브러리의 전체 내용을 삽입합니다.

이렇게 하면 실제로 작성된 코드를 쉽게 읽을 수 있는 동시에 많은 강력한 기존 도구를 사용할 수 있습니다. 모든 애플리케이션에 대해 바퀴를 재발명하거나 라이브러리의 일부 또는 전체를 코드 베이스에 붙여넣지 않아도 됩니다.

전처리기의 또 다른 잠재적 용도는 빌드 의도에 따라 특정 기능을 제거하거나 추가하는 것입니다. 예를 들어 새 빌드를 테스트하려는 경우 많은 디버깅 단계를 포함하는 것이 정말 유용할 수 있습니다. 릴리스 빌드에는 필요하지 않을 뿐만 아니라 실제로 컴파일된 소프트웨어를 더 크게 만듭니다. 전처리기는 컴파일러 인수를 확인하고 특정 기능을 포함하거나 무시해야 하는지 결정할 수 있습니다. 이와 유사하게 전처리기는 일반적으로 컴파일러 전에 주석을 제거합니다. 이는 빌드에 포함되어서는 안 되기 때문입니다.

결론

전처리기는 코드가 실제로 컴파일되기 전에 코드를 조작하기 위해 컴파일러에서 실행하는 도구입니다. 전처리기는 별도로 호출할 수 있지만 일반적으로 컴파일 프로세스의 일부로 호출됩니다. 전처리기는 정의된 특정 문자열을 찾아 표준 콘텐츠로 바꿉니다. 주석의 경우 대체가 없지만 외부 라이브러리를 포함하는 명령문의 경우 전처리기가 명령문을 실제 라이브러리의 컨텐츠로 대체합니다. 전처리기는 컴파일 시간 인수를 사용하여 특정 기능을 제어할 수도 있습니다. 이는 종종 테스트 또는 릴리스 빌드에서 디버그 기능을 포함하거나 제외하는 데 사용됩니다.



하드 드라이브를 복제하는 방법

하드 드라이브를 복제하는 방법

데이터가 귀중한 자산인 현대 디지털 시대에 Windows에서 하드 드라이브를 복제하는 것은 많은 사람들에게 중요한 프로세스가 될 수 있습니다. 이 종합 가이드

Windows 10에서 드라이버 WUDFRd를 로드하지 못한 문제를 해결하는 방법은 무엇입니까?

Windows 10에서 드라이버 WUDFRd를 로드하지 못한 문제를 해결하는 방법은 무엇입니까?

컴퓨터를 부팅하는 동안 WUDFRd 드라이버를 컴퓨터에 로드하지 못했다는 오류 메시지가 나타납니까?

NVIDIA GeForce Experience 오류 코드 0x0003 수정 방법

NVIDIA GeForce Experience 오류 코드 0x0003 수정 방법

데스크탑에서 NVIDIA GeForce 경험 오류 코드 0x0003을 경험하고 계십니까? 그렇다면 블로그를 읽고 이 오류를 빠르고 쉽게 해결하는 방법을 알아보세요.

Chromebook이 켜지지 않는 이유

Chromebook이 켜지지 않는 이유

내 크롬북이 켜지지 않는 이유는 무엇입니까? 질문에 대한 답을 얻으십시오. Chromebook 사용자를 위한 유용한 가이드입니다.

Fitbit Versa 4에서 시계 페이스를 변경하는 방법

Fitbit Versa 4에서 시계 페이스를 변경하는 방법

Fitbit Versa 4의 시계 페이스를 변경하여 시계를 매일 무료로 다르게 꾸며보세요. 얼마나 빠르고 쉬운지 확인하십시오.

Roomba가 중지, 고정 및 회전 – 수정

Roomba가 중지, 고정 및 회전 – 수정

Roomba 로봇 청소기가 멈추고, 달라붙고, 계속 회전하는 문제를 해결합니다.

Steam Deck에서 그래픽 설정을 변경하는 방법

Steam Deck에서 그래픽 설정을 변경하는 방법

Steam Deck은 손끝에서 바로 강력하고 다양한 게임 경험을 제공합니다. 그러나 게임을 최적화하고 최상의 성능을 보장하려면

격리 기반 보안이란 무엇입니까?

격리 기반 보안이란 무엇입니까?

우리는 사이버 보안 세계에서 점점 더 중요해지고 있는 주제인 격리 기반 보안에 대해 탐구할 것입니다. 이 접근법은

Chromebook에서 Auto Clicker를 사용하는 방법

Chromebook에서 Auto Clicker를 사용하는 방법

오늘은 Chromebook에서 반복적인 클릭 작업을 자동화할 수 있는 도구인 Auto Clicker에 대해 자세히 살펴보겠습니다. 이 도구를 사용하면 시간과

SMPS란?

SMPS란?

컴퓨터에 SMPS를 선택하기 전에 SMPS란 무엇이며 다양한 효율 등급의 의미에 대해 알아보십시오.