в globals.h пишу #define SPI_EXT_SOFT_RETURN_TYPE u16
в файле к примеру spi_ext_soft.c в какой-то функции написано следующее switch( this->frame_size ) { case 16: this->curr_bit = (1 << 15 ); break; #if(( SPI_EXT_SOFT_RETURN_TYPE == u24) || (SPI_EXT_SOFT_RETURN_TYPE == u32)) case 24: this->curr_bit = (1 << 23 ); break; #endif #if( SPI_EXT_SOFT_RETURN_TYPE == u32) case 32: this->curr_bit = (1 << 31 ); break; #endif
и там же ниже функция /////////////////////////////////////////////////////////////// SPI_EXT_SOFT_RETURN_TYPE Tspi_ext_soft::get_value( void ) { return this->value; }
дак вот IAR почему то первые #IF считает верными case 16: this->curr_bit = (1 << 15 ); break;
case 24: this->curr_bit = (1 << 23 ); break;
case 32: this->curr_bit = (1 << 31 ); break;
}
а в нижестоящую функцию правильно подстановку делает /////////////////////////////////////////////////////////////// u16 Tspi_ext_soft::get_value( void ) { return this->value; }
Что я не так делаю ?
Этот С инклюдит свой хидер, который в свою очередь инклюдит globals.h