Каковы несовместимые различия между C (99 )и C++ (11 )?

Этот вопрос был вызван ответом (s )на сообщение Херба Саттера , где он объяснил решение MS не поддерживать /создайте компилятор C99, но просто используйте функции C (99 ), которые в любом случае есть в стандарте C++ (11 ).

Один комментатор ответил:

(... )C важен и заслуживает хотя бы немного внимания.

Существует МНОГО существующего кода, который подходит для C, но не действительный С++. Этот код вряд ли будет переписан (...)

Поскольку я программирую только на MS C++, я действительно не так хорошо знаю "чистый" C, т.е. у меня нет готовой картины того, какие детали C++ -язык, который я использую, не находится в C (99 ), и у меня есть небольшие подсказки, где некоторый код C99 не будет работать, поскольку -находится в компиляторе C++.

Обратите внимание, что я знаю только о ключевом слове C99 restrict, которое мне кажется очень узким, и о массивах переменной -длины -(, к которым я не отношусь насколько они широко распространены или важны ).

Кроме того, меня очень интересует, есть ли какие-либо важные семантические различия или ловушки, то есть код C (99 ), который будет компилироваться под C++ (11 )но делайте что-то иначе с компилятором C++, чем с компилятором C.


Быстрые ссылки :Внешние ресурсы из ответов:

54
задан Cœur 4 May 2018 в 06:59
поделиться