0

我定义一个结构如下:

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

4

1 回答 1

0

可能太大而无法一口气宣布。您可能必须在不同的 C 文件中声明它的不同实例。xc8 可能会感到困惑。编译器的目标是 8 处理器,它倾向于将内容保持在同一页面(256 个 RAM 块)中。但它可能会感到困惑。

于 2018-09-20T13:25:54.150 回答