【发布时间】:2017-12-12 05:06:27
【问题描述】:
这是我的代码:
int i; char *p;
char mnc[20],mcc[20],network_string[20];
char *array_parse[3] = {mnc ,mcc ,network_string}; /* Error occurs here */
WATCH_DOG_RESET;
printf("\n\n##############Mobile Country Code############\r\n");
Modem_Send("AT*PSHPLMN?\r\n",13);
ModemWaitForAtResponse((char *)APN_Buffer,80,20);
p = strtok (APN_Buffer,"'\":");
while (p!= NULL)
{
strcpy(array_parse[i++], p);
//printf ("%s\r\n",p);
p = strtok (NULL, "\":");
}
printf("%s\r\n",mnc);
printf("%s\r\n",mcc);
printf("%s\r\n",network_string);
此代码在代码块中有效,但在 Keil uvision4 中无效。
我得到“表达式必须有一个常数值”。
【问题讨论】:
-
"表达式必须有一个常数值"
-
是的,我使用了 c99 模式。但是生成的十六进制文件在我的微控制器中不起作用。但是我刚才没有使用c99模式就解决了这个问题。但是很好奇为什么没有c99模式会出现这个错误。
-
它们是局部变量。而且代码很大。