关于static类成员变量初始化的问题
hpxzw 2013-09-09 11:23:54 大家好,我这里有个问题百撕不得骑姐,希望大家帮帮忙,灌水的就谢谢了,不过分就少了哈~~
----------------------------------------------------------------------------------------
有个类(就叫A)-需要有公有成员变量(结构体数组arr),定义为static,
在其他的类(例如B)中要访问这个数组(先需要同步,再访问),直接A::arr[0].digit=0,类似这样就没问题,如果在类A中加一个函数InitTrendArr(),然后在类B中调用A::GetInstance()->InitTrendArr(),在InitTrendArr()函数中把变量的值打印输出,没问题,但调用完成之后,在类B中打印就不对了,保持原来的值,我把数值和数组arr地址打印输出了,在pc上是一样的,在板子上就不一样了。。。难道是跟编译器有关的么?
volatile关键字也加了试过,还是不行~~
我现在是不这样调用A::GetInstance()->InitTrendArr(),直接A::arr[0].digit=0,这样就没问题,但总觉得这样不好
有个应用实例是:打开一个窗口,oncreate的时候 需要先同步一下arr数组中的变量,需要对数组arr进行一些初始化(每次打开前都要初始化)
ps:我是做嵌入式的,有模拟器可以在pc环境调试,但实际的结果是pc上没问题,板子上就有问题了
我回复可能慢些,但想着差不多一个星期结贴吧,希望能弄明白