ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
24 апреля
729341 Топик полностью
Ксения (18.01.2017 18:26, просмотров: 136) ответил IBAH на если Си подмножество Си++, зачем его ваще указывать? да еще с начала. Никто не пишет объявление "Хочу познакомится с женщиной/человеком для и.о."
Результат компиляции получается разный, в зависимости от того C-файл компилируется или CPP. С-функции компилируются в объектный модуль с тем же именем (с минимальными искажениями типа добавления подчеркивания спереди и т.п.) и имеют один из стандартных типов вызова и линковки. Тогда как в С++ разрешен "полиморфизм" (функции с одинаковыми именами, но отличающиеся типами аргументов и возвращаемого значения). А это обстоятельство заставляет компилятор придумывать вызовам этих функций нечеловеческие называния, компануя вместе имя, данное функции программистом, с мнемоникой, отражающей тип ее аргументов и результата. Возможно, что для кого-то это обстоятельство покажется несущественным, но мне оно много крови попортило. И до сих пор внешние библиотеки, добываемые на стороне, приходится выбирать сишные, т.к. с сипипишными состыковаться очень трудно из-за того, что разные компиляторы придерживаются разной системы именования. А из-за этого откомпилированные бинарные модули на языке C гораздо проще стыкуется с другими языками, так и с компиляторами того же языка, но от другого производителя. Например, я легко линкуюсь с мат-библиотеками MKL (от Intel) и IMSL (от Rogue Wave), поскольку вызовы там сишные или фортрановские, а вот новомодный DAAL (от Intel) использовать не могу - он сипипишный и стыкуется только с родным компилятором от самого Intel. Тогда как само писание программ на C++ много приятнее из-за большей широты возможностей.