Разработка на чистом C
От: Lonely Dog Россия  
Дата: 30.10.16 11:44
Оценка: 6 (1) :))
Привет!

Я 15 лет пишу на C++, немного знаю C#, Python и пр. Но совершенно не понимаю, как писать на C. Как организовывать обработку ошибок (исключений нет, значит остаются коды возврата или setjmp/longjmp). RAII нет, значит надо в конце функции все чистить самому. Знаю, что у MS в драйверах используется goto cleanup для этих целей. Что-то типа:
void doSomething()
{
  XXX
  if (XXX)
    goto cleanup;

  cleanup:
    free(XXX);
}


Понятно, что можно использовать alloca для автоосвобождения памяти. Но не везде это подходит (стек все-таки ограничен). Далее, в C++ есть STL с кучей полезных структур данных (а есть ведь еще Boost/Poco). В чистом C ничего такого нет, т.е. надо использовать какие-то сторонние библиотеки. Какие?


Может есть какие-нибудь книги? Думаю, посмотреть что-то типа Writing device drivers for Linux.

Заранее спасибо.
Отредактировано 30.10.2016 11:45 Lonely Dog . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.