[英]Compiler errors when declaring global variables
我正在尝试声明一个全局变量,由于某种原因,编译器不喜欢这样做。 就是说,当我已经给定类型时,它没有存储类或说明符。 在一分钟之前,这些是本地的,但是现在我才意识到我将需要全局的这些,并且由于某种原因,它不允许我这样做。 我希望所有功能都能看到这些变量,但是我的大多数功能目前不在主要范围内。 因此,我希望它们由所有功能共享。
char pa, pb, pc, pd, pe, pf, pg, ph, pi, pj, pk, pl, pm, pn, po;
pa = 'o';
pb = pc = pd = pe = pf = pg = ph = pi = pj = pk = pl = pm = pn = po = '+';
您应该将代码放在这样的main()函数中。 我能够在Windows 7上进行编译。
#include <stdio.h>
/* Declare global variables for this module */
char pa, pb, pc, pd, pe, pf, pg, ph, pi, pj, pk, pl, pm, pn, po;
int main(int argc, char *argv[])
{
/* Assign your global variables */
pa = 'o';
pb = pc = pd = pe = pf = pg = ph = pi = pj = pk = pl = pm = pn = po = '+';
}
您可以在函数外部声明并分配(单个)变量。 将您的声明转换为单个声明:
#include <stdio.h>
char pa = 'o';
char pb = '+';
char pc = '+';
/* many others, omitted for brevity */
int main() {
printf("%c, %c", pa, pb);
}
无需拆分声明和分配即可实现所需的功能。
注意:
char pb = '+';
char pc = pb;
可能 ,在一定意义上,工作方式:当编译器看到char pc=pb:
它拥有所有必要的信息申报PC和初始化它PB。 但这不是因为它不够智能(更多可能是因为该语言说这种初始化器(pb) 必须是一个常量 )。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.