因为,你使用了条件预编译。
即该段代码,虽然写了,因为预编译的指令条件不成立,则该段的代码,编译器不编译,相当于没有这段代码,所以才会说没有定义改变量.
l例如: 如果我在程序中,没有定义VECT_TAB_SRAM 这个宏、
#ifdef VECT_TAB_SRAM
SCB->VTOR = SRAM_base | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */
#else
SCB->VTOR = FLASH_base | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH */
#endif
此时,编译器只编译:SCB->VTOR = FLASH_base | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH */
上面的SCB->VTOR = SRAM_base | VECT_TAB_OFFSET; 则不进行编译。你在这个段里面定义的变量、代码通通不编译。