“pragma”这个词来自哪里?

时间:2010-09-24 21:48:45

标签: c++ c terminology pragma

所以我知道pragma是什么,以及它用于什么,但这个词本身的含义是什么?我已经在代码中多次使用它了,但我从来都不知道这个词实际意味着什么或代表什么。

5 个答案:

答案 0 :(得分:61)

根据美国政府所有(!)文件描述Ada的设计:Rationale for the Design of the Ada® Programming Language

  

一个pragma(来自希腊词的含义   action)用于指导行动   编译器的特殊方式,   但对语义没有影响   一般的程序。

我喜欢(最后警告)那里......

这个交叉引用了很好的在线希腊语词典(例如引用Martin York),它说的是pragma(πράγμα,正如asveikau对原始问题的评论){{3} }:

  1. 已经完成的事情,契约,成就事实
  2. 做了什么或正在完成什么
    1. 规格。商业,商业交易
  3. 一件事,问题,事情
    1. 规格。在法医意义上,法律,案件,诉讼
  4. 是或存在的东西
  5. 似乎理解的关键是 action 而不是信息

答案 1 :(得分:18)

在数学和逻辑中,pragma是一个给定的事实,是后面的论证,问题或证据的先决条件。

答案 2 :(得分:15)

Wikipedia(编程)拉出来:

  

在Ada中,编译器指令称为pragma(“实用信息”的缩写)。

虽然它没有明确表示C,但无论如何这都应该回答你的问题。但是,作为T.J.指出,这条信息没有有效的来源。

答案 3 :(得分:7)

来自古希腊语:

  

pragma:做的事情,事实

与所有令人讨厌的东西一样,有人试图为自己的利益而过于聪明。不幸的是,它的原始含义会让我们其他人失去(除非你有谷歌和拉丁语/希腊语到英语词典方便)。

http://www.studylight.org/lex/grk/view.cgi?number=4229
http://www.bibletools.org/index.cfm/fuseaction/Lexicon.show/ID/G4229/pragma.htm

原文(就是上面所说的内容,但我没有该书的副本):

  Thayer和史密斯。 “希腊词典进入Pragma”。 “新约希腊词典”。

答案 4 :(得分:3)

编程语言Ada很可能是第一个使用pragma指定预处理程序指令的编译器。这个词被用作缩写形式的“实用信息”

当设计C编程语言时,它最初没有pragma指令,但很快就添加到规范中以支持自定义编译器功能。 (即,用于intel C ++编译器的#pragma optimization_level)

从那时起,许多语言都以某种形式实现了pragma,包括C#,但它们通常仅限于构建时间警告和优化提示。

非标准C和C ++中最常见和最有用的编译指示之一是#pragma once,用于指定文件只应包含一次。