Цитата(=AK= @ Apr 19 2014, 07:34)

Такой подход имеет право на существование, однако у него все же есть два недостатка:
- Пространство имен функций все-таки засоряется. Не получится иметь 100500 функций init();
- На вызов функции и возврат из нее тратится время и память кода. Напрямую с переменной работать эффективнее.
Со временем устаканилось две вещи (как ответ на "два недостатка"):
1. Там, где надо 100500 ИНИТов делать - это решается через хэндлы. Как говорят военные, безобразно, зато единообразно.
Код
struct _handle
{
void (*init)(void);
void (*done)(void);
};
2. Там, где требуется оченно зашкаливающая эффективность, - там нет таких объемов данных и все сосредоточено в пределах одного модуля.
Это все фигня, потому что С++ все-таки дает неквадратные колеса. Если человеку аж чешется ООП, то для чего этим страдать на Си? На Си даже try - catch можно делать, ну и?
На GCC можно даже частично RTTI на макросах делать. Но к чему?
Сообщение отредактировал _Pasha - Apr 19 2014, 09:38