그래서 나는 pragma가 무엇인지, 그것이 무엇을 위해 사용되는지 알고 있습니다. 그러나 단어 자체의 의미는 무엇입니까? 코드에서 여러 번 사용했지만 그 단어가 실제로 의미하는 바가 무엇인지 전혀 알지 못했습니다.
그래서 나는 pragma가 무엇인지, 그것이 무엇을 위해 사용되는지 알고 있습니다. 그러나 단어 자체의 의미는 무엇입니까? 코드에서 여러 번 사용했지만 그 단어가 실제로 의미하는 바가 무엇인지 전혀 알지 못했습니다.
답변:
Ada의 설계를 설명하는 미국 정부 소유 (!) 문서 에 따르면 Ada® 프로그래밍 언어의 설계를위한 이론적 근거 :
pragma (동작을 의미하는 그리스어에서 유래)는 컴파일러의 동작을 특정 방식으로 지시하는 데 사용되지만 일반적으로 프로그램의 의미에는 영향을주지 않습니다.
나는 거기 (마지막 경고)를 좋아한다 ...
이 상호 참조와 잘 온라인 그리스어 사전 (예에 의해 인용 마틴 뉴욕 ) 그 말 프라그 ( πράγμα , asveikau에 의해 원래의 질문에 댓글로) 수단 :
이해의 열쇠 는 정보 라기보다는 행동 이라는 단어 인 것 같습니다 .
Wikipedia (프로그래밍) 에서 바로 가져옴 :
Ada에서는 컴파일러 지시문을 pragma ( "pragmatic information"의 약자)라고합니다.
C에 대한 것은 아니지만 어쨌든 귀하의 질문에 답할 것입니다. 그러나 TJ가 지적했듯이이 정보에는 유효한 소스가 없습니다.
고대 그리스어에서 :
pragma : 한 일, 사실
모든 괴짜와 마찬가지로 누군가는 자신의 이익을 위해 너무 영리하려고 노력했습니다. 안타깝게도 그 원래 의미는 나머지 우리에게 사라집니다 (Google과 라틴 / 그리스어에서 영어로의 사전을 편리하게 사용하지 않는 한).
http://www.studylight.org/lex/grk/view.cgi?number=4229
http://www.bibletools.org/index.cfm/fuseaction/Lexicon.show/ID/G4229/pragma.htm
원본 (위 페이지에 나와있는 내용이지만 해당 책의 사본이 없습니다) :
Thayer와 Smith. "Pragma에 대한 그리스어 사전 항목". "신약 그리스어 사전".
프로그래밍 언어 Ada는 전 처리기 지시문을 지정하기 위해 pragma를 사용한 최초의 컴파일러 일 가능성이 높습니다. 이 단어는 "실용적 정보"의 축약 형으로 사용되었습니다.
C 프로그래밍 언어가 설계되었을 때 처음에는 pragma 지시문이 없었지만 사용자 지정 컴파일러 기능을 지원하기 위해 사양에 빠르게 추가되었습니다. (예 : 인텔 C ++ 컴파일러의 경우 #pragma Optimization_level)
그 이후로 많은 언어가 C #을 포함하여 어떤 형태로든 pragma를 구현했지만 빌드 시간 경고 및 최적화 힌트로 제한되는 경우가 많습니다.
비표준 C 및 C ++에서 가장 일반적이고 유용한 pragma 중 하나는 파일이 한 번만 포함되도록 지정하는 데 사용 된 #pragma 입니다.