测试代码如下 WINCE5.0 随便找了个流驱动里面测试。
list test; void func() { test.push_back(1); } 如果把test定义为全局变量,则会有Data Abort。
而下面局部变量那个则不会有问题。
void func() { list test; test.push_back(1); }
顺便用同样的方法测试了下vector。。
不会出现Data Abort。
原因是全局变量的初始化顺序是不可控制的,
定义成全局对象指针,
在函数中进行初始化即可。。
或者这样写
inline list<int> Get_List() { static list<int> test; return test; }