Будем считать что я пишу прикладные программки.
- Как лучше обрабатывать malloc == NULL? Игнорировать или кидаться аbort() не хочется, но обработать нужно, обрабатывать каждый вызов?
- Писать свои строки или есть библиотека? Строки хранить как utf8 или utf32?
- Динамические массивы, писать свои, есть готовые? Как находить оптимальный размер для увеличение массива при расширении, нужно ли вообще заранее выделять память?
- Куда лучше выводить ошибку? Можно в консоль, но на винде не прокатит вроде, плюс ничего не видно.
- Нормальная ли идея: Есть много строк по 3-16 символов, сделать MyMemAllocate который при выделении (64 > X) байт, выделяет память в уже аллоцированном буфере на пару мегабайт к примеру... А при MyMemRealloc(X > 64) перемещает память из этого буфера в системную кучу. Перед данными хранить байт отвечающий за тип кучи.
- Когда структуру нужно передавать через стек а когда по указателю?
- на x86_64 быстрее uint32_t или uint64_t?
- for(...;i != len;...) vs for(...;i < len;...)
- Всегда ли ((unsigned)0-1) == ((unsigned)0-1)?
- На чем быстро рисовать графику (картиночки, кнопочки)? SDL2 говорят медленный.
- Есть много текста, с разным шрифтом, разным размером. Как лучше такое рисовать? (ttf), нарисовать алфавит для каждого {размер+шрифт}, или нарисовать алфавит с очень большим размером а потом сжимать для буков меньшего размера? Рендерит кто нибудь TTF на видеокарте кстати?
- Есть много объектов с одинаковыми и неизвестными именами, делать отдельную структуру (в виде чего?) где будут храниться эти имена дабы не занимать память одинаковыми строками?
- Как лучше хранить значения key:value что бы быстро с ними работать?
- если значений мало,
- если значений много.
- Можно ли как то поставить обработчик на изменение участка памяти? Костыль, но нужно. (Win/Linux хотя бы)
- Актуальна ли для современных систем фрагментация кучи?
- Какие библиотеки есть для многопоточного? Что можно почитать? SDL_Thread тоже медленный?
- Вот допустим решил я распарсить INI файл, как лучше его читать? По линиям? Сразу весь? Проецировать?
- Библиотека для RegExp?
- Какие флаги для строгости компилятора юзать стоит? Я использую: -std=c89 -Wall -pedantic
Ну или можно книжку где это расписанно.