我将结构定义如下:
struct _connection_info_t{
char unique_name[5];
char ip[16];
char port[5];
}WIFI_connection_info_g[2],zz[3];
在“sprintf”函数中使用WIFI_connection_info_g [0]变量:
sprintf(buffer,"AT+CIPSTART=\"TCP\",\"%s\",%s",WIFI_connection_info_g[0].ip,WIFI_connection_info_g[0].port);
当我编译上面的代码时,编译器会生成以下错误:
wifi_tempalte.h:290:错误:(1402)指向eeprom的指针也不能指向其他数据类型
但是当我更改“sprintf”功能并使用“zz”变量时,如下所示:
sprintf(buffer,"AT+CIPSTART=\"TCP\",\"%s\",%s",zz[0].ip,zz[0].port);
编译成功。
注1: 我的目标设备是16f1829
注2: 编译器版本是1.30
答案 0 :(得分:0)
可能太大,无法一口气宣布。 您可能必须在不同的C文件中声明它的不同实例。 xc8可能会造成混淆。编译器的目标是8处理器, 倾向于保持东西 在同一页(256个RAM块)中。但是,它可能会造成混淆。