Может быть, первый вопрос, который нужно задать, - действительно ли вам нужен простой C? (возможно, такой язык, как .net или java - вариант - тогда, например, переполнение буфера больше не проблема)
Другой вариант - написать части вашего проекта на C ++, если другие языки более высокого уровня не доступны. Затем вы можете иметь интерфейс C, который инкапсулирует код C ++, если вам действительно нужен C.
Потому что, если вы добавите все расширенные функции, встроенные в стандартную библиотеку C ++, ваш код на C будет работать лишь незначительно быстрее в большинстве случаев (и будет содержать гораздо больше ошибок, чем существующая и протестированная среда).