读书人

关于“no definition”有关问题

发布时间: 2012-04-19 14:36:43 作者: rapoo

关于“no definition”问题
最近在弄STM32,但是遇到了一个问题。
#define STM32
#ifdef STM32
CPU_INT08U* block1 = (CPU_INT08U*)0x20001800;
#else
CPU_INT08U block1[256]; //!< Workspace 1.
#endif

就按上面代码编译、链接,没问题。但是当我把下面的block1[256]注释掉以后,就会出现错误,不知道是什么原因。

#define STM32
#ifdef STM32
CPU_INT08U* block1 = (CPU_INT08U*)0x20001800;
#else
?/*CPU_INT08U block1[256]; //!< Workspace 1.*/
#endif
错误提示:“Error[Li005]: no definition for "block1" [referenced from F:\Micrium\Software\EvalBoards\ST\STM32-SK\IAR\OS-Probe-LCD\Flash\Obj\EmAes.o] ”


[解决办法]
预编译的时候,他不会看你是否define 了STM32,他会两个都去查看,无论是if还是else
[解决办法]
走的是第二个分支

读书人网 >C语言

热点推荐