在h文件里声明extern uint8_t dmx512_dbf513;在c文件里定义 static uint8_t dmx512_dbf513; C语言中这样定义有错误吗为什么在其他c文件里调用会出现未定义报错信息如下Objectsprojectaxf Error L6218E Undefined symbol dmx512_dbf referred from mainoNot enough
这种错误通常是由于在链接阶段找不到符号定义而导致的。在您的情况下,您在h文件中声明了一个全局变量,但在c文件中定义为静态变量。这意味着该变量只能在该文件中使用,而其他文件无法访问它。
为了解决此问题,您需要在h文件中声明变量时使用extern关键字,并在c文件中定义变量时不使用static关键字,以便其他文件可以访问该变量。例如:
在h文件中声明:extern uint8_t dmx512_dbf[513];
在c文件中定义:uint8_t dmx512_dbf[513];
这样,您就可以在其他c文件中访问该变量,并且不会出现未定义的错误。
原文地址: https://www.cveoy.top/t/topic/fTyQ 著作权归作者所有。请勿转载和采集!