LINUX.ORG.RU

История изменений

Исправление pavlick, (текущая версия) :

#define можете даже не упоминать. Не знаю почему сишники так любят численные константы делать через #define. Да еще и без префиксов библиотеки. А потом эти дефайны везде лезут в неожиданных местах. Если портирую библиотеку и вижу кучу #define то сразу sed ом превращаю в enum. Ибо нафик. Сейчас есть острое желание сделать static const uint8_t UINT8_MAX_imp = UINT8_MAX; #undef UINT8_MAX; static const UINT8_MAX = UINT8_MAX_imp; и так для всех численных макросов стандартной библиотеки.

Какой-то ерундой занимаешься, enum будет ни чуть не лучше дефайна. Похоже наслушался каких-то страшилок про дефайны и кодишь теперь в состоянии аффекта. Я не буду утверждать, что -Wall не должна замечать такой каст, скорее даже соглашусь с тем, что замечать надо. Ну и так, к слову - каст указателя на константные данные с последующей модификаций данных полностью законный, если в этот указатель пришел адрес неконстантных данных.

Исходная версия pavlick, :

#define можете даже не упоминать. Не знаю почему сишники так любят численные константы делать через #define. Да еще и без префиксов библиотеки. А потом эти дефайны везде лезут в неожиданных местах. Если портирую библиотеку и вижу кучу #define то сразу sed ом превращаю в enum. Ибо нафик. Сейчас есть острое желание сделать static const uint8_t UINT8_MAX_imp = UINT8_MAX; #undef UINT8_MAX; static const UINT8_MAX = UINT8_MAX_imp; и так для всех численных макросов стандартной библиотеки.

Какой-то ерундой занимаешься, enum будет ни чуть не лучше дефайна. Похоже наслушался каких-то страшилок про дефайны и кодишь теперь в состоянии аффекта. Я не буду утверждать, что -Wall не должна замечать такой каст, скорее даже соглашусь с тем, что замечать надо. Ну и так, к слову - каст указателя на константные данные с последующей модификаций полностью законный, если в этот указатель пришел адрес неконстантных данных.