Я не вижу причин для такой вещи, g ++ и gcc - это просто разные интерфейсы для одного и того же компилятора.Таким образом, для всего, что касается эффективности, совместимости байтов и т. Д., Не должно быть проблем с смешиванием .o
файлов, созданных обоими.
C и C ++ имеют много тонких различий, которые могут вызвать проблемы, начиная с таких вещей, как:поскольку sizeof 'a'
отличается, но sizeof c
является тем же самым (если c
является char
), чтобы bool был типом в одном и макросом в другом, true
имеет тип bool
в C ++и int
в C, C не допускает static
объявлений в for
...
И даже если это так, что C и C ++ имеют большое пересечение, если вы ограничиваете себя тем, чтоПринимая во внимание хорошую практику кодирования в обоих сообществах, вы быстро обнаружите, что пересечение почти пусто.Это касается приведений указателей, выделения с помощью malloc
или new
, составных инициализаторов по сравнению с конструкторами, массивов переменной длины по сравнению с векторными классами ...
Просто не делайте этого.Все, что вам нужно, это создать красивый интерфейс, который подходит для обоих.