Однажды я решил начать писать видеоигру на простом старом C.
Это было очень весело, и через три месяца (иногда у меня мало времени уходит с работы), я обнаружил, что мне нужнонекоторый физический движок.
Я решил использовать физический движок Bullet, потому что он кажется одним из лучших для того, что мне нужно.
Затем я обнаружил, что у Bullet на самом деле нет C API, а толькополный C ++ API.Его API C не поддерживается.
После дня ругательства я «преобразовал» свой проект в C ++, что является смелым заявлением о том, что я типизировал все выделения кучи, и я использую new и delete вместо malloc и free, инекоторые определения обернуты в 'extern "C" {...}'.
Некоторые люди, вероятно, стреляли бы в меня из-за этого, но я не видел другого варианта использования таких функций, связанных с производительностью, как этот физический движок, которыйимеет только C ++ API, в C.
Так что теперь я компилирую с g ++, в то же время все еще пишу в основном код "C".Я чувствую себя немного менее счастливым, потому что код больше не чувствует себя чистым.
C ++ выдает мне некоторые странные сообщения об ошибках, в то время как я ничего не имею против языка, который мне часто не нравится парсер g ++.Помимо того, что теперь я могу с радостью перебрасывать объекты друг на друга, некоторые мелочи и чистота моего любимого проекта теперь пустынны.
Мне интересно, правильно ли я поступил.Могу ли я попросить совета, стоит ли продолжать и не беспокоиться об использовании компилятора C ++ для моего «в основном» кода C?Существуют ли другие способы использования этого API в C без каких-либо падений производительности или чрезмерной работы по обслуживанию?