Итак, я знаю, что такое прагма и для чего она используется, но каково значение самого слова? Я много раз использовал его в коде, но я никогда не знал, что это слово на самом деле означает или означает.
Итак, я знаю, что такое прагма и для чего она используется, но каково значение самого слова? Я много раз использовал его в коде, но я никогда не знал, что это слово на самом деле означает или означает.
Ответы:
Согласно документу, принадлежащему правительству США (!), Описывающему дизайн Ada: Rationale for the Design of the Ada® Programming Language :
Прагма (от греческого слова, означающего действие) используется для управления действиями компилятора определенным образом, но не влияет на семантику программы (в целом).
Мне нравится (последнее предостережение) там ...
Это перекрестные ссылки на греческие онлайн-словари (например, процитированные Мартином Йорком ), в которых говорится, что прагма ( πράγμα , как прокомментировал исходный вопрос asveikau) означает :
Кажется, ключом к пониманию является слово действие, а не информация .
В математике и логике прагма - это данность, факт, предпосылка для аргументации, проблемы или доказательства, которые следуют.
Вытащил прямо из Википедии (программирование):
В Ada директивы компилятора называются прагмами (сокращение от «прагматическая информация»).
Хотя это явно не для C, это все равно должно ответить на ваш вопрос. Однако, как указал TJ, для этой информации нет достоверного источника.
С древнегреческого:
прагма: дело сделано, факт
Как и во всем остальном, кто-то пытался быть слишком умным для их же блага. К сожалению, его первоначальное значение теряется для остальных (если у вас нет Google и под рукой словаря с латыни / греческого на английский).
http://www.studylight.org/lex/grk/view.cgi?number=4229
http://www.bibletools.org/index.cfm/fuseaction/Lexicon.show/ID/G4229/pragma.htm
Оригинал (так написано на странице выше, но у меня нет копии этой книги):
Тайер и Смит. «Запись в греческом лексиконе для Pragma». «Греческий лексикон Нового Завета».
Язык программирования Ada, возможно, был первым компилятором, который использовал прагму для определения директив препроцессора. Слово использовалось как сокращенная форма «прагматической информации».
Когда был разработан язык программирования C, в нем изначально не было директив pragma, но он был быстро добавлен в спецификацию для поддержки пользовательских функций компилятора. (например, #pragma optimisation_level для компилятора Intel C ++)
С тех пор многие языки реализовали прагму в той или иной форме, включая C #, но они часто ограничиваются предупреждениями о времени сборки и подсказками по оптимизации.
Одна из наиболее распространенных и полезных прагм в нестандартных C и C ++ - это #pragma once, используемая для указания того, что файл должен быть включен только один раз.