전처리기란 무엇입니까?

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

컴파일러란 무엇입니까?

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

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

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

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

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

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

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

결론

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



Leave a Comment

Powerbeats Pro가 케이스에서 충전되지 않을 때 해야 할 일

Powerbeats Pro가 케이스에서 충전되지 않을 때 해야 할 일

Powerbeats Pro가 충전되지 않으면 다른 전원 소스를 사용하고 귀마개를 청소하세요. 귀마개를 충전하는 동안 케이스를 열어 두세요.

3D 프린팅 기본: 필수 유지보수 체크리스트

3D 프린팅 기본: 필수 유지보수 체크리스트

장비를 좋은 상태로 유지하는 것은 필수입니다. 다음은 3D 프린터를 최상의 상태로 유지하기 위한 유용한 팁입니다.

Canon Pixma MG5220: 잉크 없이 스캔하기

Canon Pixma MG5220: 잉크 없이 스캔하기

Canon Pixma MG5220에서 잉크가 없을 때 스캔을 활성화하는 방법입니다.

노트북 과열의 5가지 이유

노트북 과열의 5가지 이유

노트북이 과열되는 몇 가지 가능한 이유와 이 문제를 피하고 장치를 시원하게 유지하는 팁과 요령을 알아보세요.

데스크탑 및 노트북 PC에 SSD 설치하는 방법

데스크탑 및 노트북 PC에 SSD 설치하는 방법

PC의 내부 저장 공간을 업그레이드하기 위해 SSD를 구입했지만 설치 방법을 모르겠습니까? 지금 이 기사를 읽어보세요!

GeForce Now 오류 코드 0xC272008F 수정 방법

GeForce Now 오류 코드 0xC272008F 수정 방법

게임의 밤을 준비하고 있으며, "Star Wars Outlaws"를 GeForce Now 스트리밍 서비스에서 플레이하려고 합니다. Ubisoft 게임을 다시 시작할 수 있도록 GeForce Now 오류 코드 0xC272008F를 수정하는 방법을 알아보세요.

3D 프린팅 기초: 3D 프린터 유지보수 팁

3D 프린팅 기초: 3D 프린터 유지보수 팁

3D 프린터를 효과적으로 유지하는 것은 최상의 결과를 얻는 데 매우 중요합니다. 기억해야 할 중요한 팁을 소개합니다.

프린터의 IP 주소 찾는 방법

프린터의 IP 주소 찾는 방법

프린터의 IP 주소를 찾는 데 어려움이 있습니까? 우리는 그것을 찾는 방법을 보여줄 것입니다.

Samsung 휴대폰에서 AirPods 사용하기

Samsung 휴대폰에서 AirPods 사용하기

Samsung 휴대폰에 AirPods 구입 여부를 고민하고 있다면, 이 가이드가 도움이 될 것입니다. 가장 간단한 질문은 호환성 여부입니다.

Apple Watch를 하드 리셋하는 방법

Apple Watch를 하드 리셋하는 방법

Apple Watch 하드 리셋 및 공장 초기화 방법을 단계별로 설명합니다. 소프트 리셋부터 하드 리셋까지, 모든 모델에 대한 가이드를 제공합니다.