xiaopdd 2022-08-05 14:47 采纳率: 0%
浏览 72

全局变量赋初值异常,ads1.2

我使用的是mtk6261,ADS1.2的编译器。我在某个.c文件,定义了一个全局变量,同时赋初值,然后在程序在打印出来,打印的结果跟我赋的初值是不一样的。使用cosnt去修饰就可以,或者重新在程序中再赋值一次。我看了项目的其他文件,很默契的基本上不在全局变量赋初值,但是该项目的同事已经不在这边了,无法获得别的信息了。
static uint8_t device_manufacturer_id[5] = "{31, 32, 33, 34, 35}";(hex数值,问题不给用0x)

void test_vol(void)
{
uint8_t i;
for(i=0;i<5;i++)
{
logDebug("制造商id[%d]\r\n",device_manufacturer_id[i]);
}
}
打印出来的是67 43 43 32 108。
我以为是个例,所以重新定义一组新的全局变量,情况也是赋初值跟打印的不一致,需要重新赋值才行。
目前这个问题已经疑惑好久了,希望有人能帮忙解惑,感谢。

  • 写回答

4条回答 默认 最新

  • xiaopdd 2022-08-05 14:52
    关注

    试过了赋不同的初值,其输出结果都是一样,不过改变了数组的长度,输出的结果就会改变。但是这个全局变量并没有在那边使用过,也没有看到明显的内存溢出之类的行为。

    评论

报告相同问题?

问题事件

  • 创建了问题 8月5日