C에서 #pragma는 한때 무엇을 의미합니까?
중복 가능성:
#hymma - 이해를 돕기
나는 그것을 보았습니다.pragma
여러 번, 하지만 항상 혼란스러워요, 그게 무엇을 하는지 아는 사람?창문만 있나요?
다음 프리프로세서 코드를 대체하는 데 사용됩니다.
#ifndef _MYHEADER_H_
#define _MYHEADER_H_
...
#endif
레거시 컴파일러를 지원하기 위해 두 가지를 모두 추가하는 것이 좋은 관례입니다(이는 드문 일이지만).
#pragma once
#ifndef _MYHEADER_H_
#define _MYHEADER_H_
...
#endif
그래서 만약에#pragma once
실패합니다. 이전 방법은 계속 작동합니다.
2023년 업데이트
나는 댓글 섹션에서 몇몇 사람들이 대신 경비원을 사용하는 것을 옹호하는 것을 봅니다.#pragma once
지원하지 않는 특수 컴파일러를 대상으로 하지 않는 한 2023년 이후에는 거의 의미가 없습니다.#pragma once
.
오늘의 모범 사례는 다음과 같은 경우에만 사용하는 것입니다.#pragma once
그리고 경비원들에게 전혀 신경쓰지 마세요.이유는
- 모든 주요 컴파일러들은 이것을 영원히 지원했고 그것은 변하지 않을 것입니다.
- 사용.
#pragma
컴파일러가 내부 캐시를 사용할 수 있게 해줍니다. 물론 파일 내용을 항상 포함하는 사전 캐시를 사용하는 것보다 더 빠릅니다. 나중에 가드에 걸려 전체를 무시할 수 있습니다. - 훨씬 짧고 추가/유지관리가 용이합니다.
C 및 C++ 프로그래밍 언어에서 #pragma once는 현재 소스 파일을 단일 컴파일에 한 번만 포함하도록 설계된 비표준적이지만 널리 지원되는 전처리기 지시어입니다.따라서 #pragma는 한때 #가 가드를 포함하는 것과 동일한 목적을 수행하지만 코드 감소, 이름 충돌 방지, 컴파일 속도 향상 등의 몇 가지 이점이 있습니다.
자세한 내용은 위키백과 문서를 참조하십시오.
일반적으로,#pragma
디렉티브는 컴파일러별 프리프로세서 명령을 구현하기 위한 것입니다.그것들은 표준화되어 있지 않기 때문에, 당신은 그것들에 너무 많이 의존하지 말아야 합니다.
이 경우에는,#pragma once
의 목적은 헤더 파일에 사용하는 포함 가드를 대체하여 다중 포함을 방지하는 것입니다.지원하는 컴파일러에서 조금 더 빠르게 작동하므로 많은 헤더 파일이 있는 대규모 프로젝트의 컴파일 시간을 줄일 수 있습니다.#include
빈번히 편집합니다.
pragma는 전처리기에 대한 지시어입니다.일반적으로 컴파일 중에 일부 추가 제어 기능을 제공하는 데 사용됩니다.예를 들어 동일한 헤더 파일 코드를 포함하지 마십시오.여러 가지 지시사항이 있습니다.답은 프래그마 단어 다음에 무엇이 나오느냐에 따라 달라집니다.
언급URL : https://stackoverflow.com/questions/5776910/what-does-pragma-once-mean-in-c
'programing' 카테고리의 다른 글
메모장++(또는 기타)를 msysgit와 함께 사용하려면 어떻게 해야 합니까? (0) | 2023.06.27 |
---|---|
VS 2012에서 사용자 지정 바인딩 호스트가 있는 IIS를 사용하는 프로젝트를 로드할 수 없습니다. IIS Express를 사용하고 있다고 생각합니다. (0) | 2023.06.27 |
Pandas의 데이터 프레임에 필요한 메모리 양을 어떻게 추정합니까? (0) | 2023.06.27 |
이전 노드 버전으로 다운그레이드하는 방법 (0) | 2023.05.19 |
GitHub에서 포크 간 병합 (0) | 2023.05.19 |