全局变量的初始化一般是根据定义的先后顺序来的,下面有个例子证明(写程序时最好不要出现顺序问题)
#include <stdio.h>
#include <string.h>
char * initPTR();
bool initBOOL();
char * gPTR = initPTR();
bool gBOOL = initBOOL();
char * gPTR1 = initPTR();
char * initPTR()
{
char *p = new char[256];
strcpy(p, "initPTR");
return p;
}
bool initBOOL()
{
gPTR = new char[256];
strcpy(gPTR, "initBOOL");
gPTR1 = new char[256];
strcpy(gPTR1, "initBOOL");
return true;
}
void main()
{
printf("%s\n", gPTR);
printf("%s\n", gPTR1);
}
两输出是不一样的,有兴趣的自己调试看一下