Страницы

Поиск по вопросам

понедельник, 1 октября 2018 г.

Несовместимость C и C++

Уважаемые коллеги! Скажите, какие элементы языка С являются неподдерживаемыми в С++? Какой код на С не будет принят компилятором С++? Особенно интересует поведение g++.


Ответ

Развитие C++ и C разделилось. У C++ выходит свой стандарт, у C - свой. C++ поддерживает все возможности C89, но не поддерживает более новые - C99 и C11. Конечно, это зависит от реализации компилятора, но в стандарт C++11 по-прежнему входят возможности только C89. Правда, в него добавили long long, который появился ещё в C99, и ещё пару возможностей. Сам я новых возможностей C не знаю, так как использую C++, но, судя по википедии, в C99 есть следующие возможности, отсутствующие в C++: Массивы переменной длины Типовые математические функции (tgmath.h) Проектируемые инициализаторы Составные константы Смягчение (restrict) ограничений для более агрессивной оптимизации кода В C11: Выражения, не зависящие от типа (Type-generic expressions) с использованием ключевого слова _Generic Комплексные числа

Комментариев нет:

Отправить комментарий