ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
6 мая
95450
Argon (27.07.2007 12:33, просмотров: 65219) General
Писателям на C++: #define vs const Согласно рекомендациям авторов C++ следует считать #define "тяжелым наследием C", ибо нет проверок типов, возможны ошибки и т.п. по сравнению с определением констант через const... Но есть ли смысл придерживаться этих рекомендаций в embedded применениях? По всей видимости, нет, ибо это увеличивает объем занимаемой памяти. Естественно, компилятор может оптимизировать const, восприняв это как #define (т.е. не будет выделяться ячейка памяти). Но это будет возможно только в пределах одного модуля. Сегодня для интереса заменил все константные #define на extern const unsigned char... extern const unsigned word... и т.п. (extern - потому как многомодульная прога) В итоге программа выросла аж на 7 кБайт!! Так что будьте внимательны :)