单片机中的NULL
在pc上的程序中,由于有NULL宏定义,所以可以直接拿来使用。但是在单片机中,就没有NULL了。而且也不能简单将NULL自定义为0,因为0地址处是有用的,比如目前我使用的M4地址0是堆栈指针。因此,我考虑定义一个变量uint32 const * const NULL = (uint32 *)&NULL;这样如果之后的程序对NULL进行了误操作就会产生错误。但是,当我将NULL给一个函数指针赋值时,却发生了问题,如果不强转,就会发生错误;如果将其强转成函数指针,链接时也会报错,例如..\out\M401.axf: Error: L6200E: Symbol NULL multiply defined (by main.o and mytimer.o).
请问应该怎么解决才好?求指教!