История изменений
Исправление 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
в остальном приведён говнокод которому не место в С.
Ч.Т.Д.