ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
25 ноября
835714
Звероящер (27.04.2018 06:27, просмотров: 1348)
Коллеги, копался тут недавно во всяких исходниках плюсовых и наткнулся на класс, где все члены класса были объявлены статическими. Что преследовал разработчик, можно же было обойтись без статика, а при создании экземпляра класса сделать его статическим? В чём разница между этим с точки зрения выделения памяти и прочего: class CLED { public: static void Blink_error(u8); private: static void drive_LED(); }; void CLED::Blink_red(u8 cnt) { __disable_interrupt(); for(; cnt !=0; cnt--) drive_LED(); __enable_interrupt(); } void CLED::drive_LED() { CLEARBIT(LED_R_PORT,LED_R); __delay_in_ms(200); SETBIT(LED_R_PORT,LED_R); __delay_in_ms(200); } void main() { CLED::Blink_red(10); } и этим class CLED { public: void Blink_error(u8); private: void drive_LED(); }; void CLED::Blink_red(u8 cnt) { __disable_interrupt(); for(; cnt !=0; cnt--) drive_LED(); __enable_interrupt(); } void CLED::drive_LED() { CLEARBIT(LED_R_PORT,LED_R); __delay_in_ms(200); SETBIT(LED_R_PORT,LED_R); __delay_in_ms(200); } static CLED led; void main() { led.Blink_red(10); }