Comments 12
На ASM не пробовали?
Выложите на guthub исходники, а не архив. Не удобно смотреть
При использовании нанослипа не будет ошибка разве набегать?
//Функция деструктор void stimer_destroy(t_stimer* timer) { ... timer = NULL; ... }
А в чем смысл обнуления локальных переменных?
if(key==50){ //2
Недавно была статья про комментирования в коде. Ваш случай - хороший пример того, как не надо делать. Вот как надо:
if(key=='2'){
Почему if ... if, а не if ... else if, два условия ведь никогда не выполняются. Почему не switch?
Функция getch возвращает int, вы сохраняете результат в unsigned char. Здравствуй, предупреждение компилятора. Здравствуй, зависшая программа на Ctrl+d.
Я согласен, что есть errno, но я так привык и всегда так делал, если возникает исключение, то исключение возвращаться в виде события. Причём обычно оно не только включает цифровой идентификатор, но и текст. Потому что если пишешь, например компонент для работы с каким-то девайсом, ПЧ или ещё чего-нибудь, то когда в нем что-то происходит, удобней получать собственные комментарии через функцию и записывать их сразу в лог.
Set и Get - наверное влияние Java. Но на скорость не влияет.
Появились вопросы:
зачем err, если есть стандартный errno?
ооп на чистом C, это, конечно, хорошо, но только когда его соблюдать: почему "set_active / get_active"? почему не enable + disable + is_active?
Объектно-ориентированное программирование на Си без плюсов. Часть 2. Таймер