C 是否没有为初始化对象创建复制?
我使用codewarrior为HC12编译,我有两个120元素的数组:score和dur。我以典型的方式初始化了它们:无符号整数分数[120]={…};然而,当我试图编译它时,我得到了一个链接器错误,上面写着“L1981:没有为初始化对象“score”创建copydown”。初始化数据丢失。“我不知道这意味着什么,也不知道如何才能使它创建copydown。请注意,当我将这些值放入main()中时,该程序编译并似乎设置得很好,但我需要它们是全局变量,因为它们是通过中断访问的。可能有两个原因:C 是否没有为初始化对象创建复制?,c,embedded,codewarrior,68hc12,C,Embedded,Codewarrior,68hc12,我使用codewarrior为HC12编译,我有两个120元素的数组:score和dur。我以典型的方式初始化了它们:无符号整数分数[120]={…};然而,当我试图编译它时,我得到了一个链接器错误,上面写着“L1981:没有为初始化对象“score”创建copydown”。初始化数据丢失。“我不知道这意味着什么,也不知道如何才能使它创建copydown。请注意,当我将这些值放入main()中时,该程序编译并似乎设置得很好,但我需要它们是全局变量,因为它们是通过中断访问的。可能有两个原因: 您
- 您要么设法在堆栈上声明此变量(坏主意),要么在太小而无法包含它的内存段中声明此变量。考虑通过改变.PRM文件,将这些大变量放在专用RAM段中。
- 或者您已经创建了一个带有“最小”启动代码的Codewarrior项目。如果这样做,则选择一个非标准设置,其中删除了具有静态存储持续时间的对象的初始化阶段