LINUX.ORG.RU

История изменений

Исправление fsb4000, (текущая версия) :

это мануал для написания С++ кода, а выдержка про С относится к С-коду который будет линковаться с С++.

Нет конечно же. Изучай английский раз не понимаешь.

Плюс получите разный размер пустых структур

Говнокодер детектед.

Пустые структуры запрещены в С. Сюрприз. Читай стандарт.

Удачи скомпилировать non-trivial designated initializers в С++

Поддерживается в С++. Нечего желать удачи.

разные типы enum

Говнокодер детектед #2.

Тип enum implementation-defined.

различие поведения с одинаковыми именами struct N и N

Пиши всегда typedef и не будет отличаться. Все твои примеры это признак того что ты не знаешь С и не умеешь мыслить.

func() - означает совершенно разные вещи в С и С++

Пиши void всегда, не будет отличаться. Будет хоть один реальный пример несовместимости?

разный размер ‘a’-заданных символов

Очередной пример говнокода который зависит от типа символьных литералов.

VLA

Говнокодер детектед #2.

Запрещён во многих гайдланах, так как причина множества CVE. В gcc и clang и прочих компиляторах есть даже предупреждение при использовании VLA так же как и alloca.

restrict

Не нужен, но есть в виде расширений во всех C++ компиляторах. Опять мимо. Пока всё совместимо. Как же так?

Пара случаев когда понадобится ifdef в остальном приведён говнокод которому не место в С.

Ч.Т.Д.

Исходная версия fsb4000, :

это мануал для написания С++ кода, а выдержка про С относится к С-коду который будет линковаться с С++.

Нет конечно же. Изучай английский раз не понимаешь.

Плюс получите разный размер пустых структур

Говнокодер детектед.

Пустые структуры запрещены В С. Сюрприз. Читай стандарт.

Удачи скомпилировать non-trivial designated initializers в С++

Поддерживается в С++. Нечего желать удачи.

разные типы enum

Говнокодер детектед #2.

Тип enum implementation-defined.

различие поведения с одинаковыми именами struct N и N

Пиши всегда typedef и не будет отличаться. Все твои примеры это признак того что ты не знаешь С и не умеешь мыслить.

func() - означает совершенно разные вещи в С и С++

Пиши void всегда, не будет отличаться. Будет хоть один реальный пример несовместимости?

разный размер ‘a’-заданных символов

Очередной пример говнокода который зависит от типа символьных литералов.

VLA

Говнокодер детектед #2.

Запрещён во многих гайдланах, так как причина множества CVE. В gcc и clang и прочих компиляторах есть даже предупреждение при использовании VLA так же как и alloca.

restrict

Не нужен, но есть в виде расширений во всех C++ компиляторах. Опять мимо. Пока всё совместимо. Как же так?

Пара случаев когда понадобится ifdef в остальном приведён говнокод которому не место в С.

Ч.Т.Д.