Название украшения в т

Есть ли в стандартном мандате оформление имени?

Насколько я знаю, большинство (все?) Соответствующих реализаций добавляют префикс подчеркивания к имени каждого экспортируемого символа. Это гарантировано C, POSIX или другим стандартом?

1 ответ

Я не уверен насчет "стандарта", но префикс подчеркивания, кажется, является очень распространенным соглашением 1970-х годов. По какой причине имена функций префиксируются компилятором с подчеркиванием?:

В то время, когда UNIX был переписан на C примерно в 1974 году, его авторы уже имели обширные библиотеки на языке ассемблера, и было проще манипулировать именами нового C и C-совместимого кода, чем вернуться назад и исправить весь существующий код.

Это необходимо для имен C, если вы хотите взаимодействовать с компиляторами Microsoft в Windows (только для win32; win64 не использует декорирование, поскольку имеет только одно стандартное соглашение о вызовах).

https://docs.microsoft.com/en-us/cpp/build/reference/decorated-names

См. Также: Почему компиляторы C добавляют подчеркивания к внешним именам?

Другие вопросы по тегам