keil环境下,没有指定数组变量的长度并且没有初始化时,此数组的长度是多大?已解答。
★肖亚平-成都:数组初始化没有定义长度,存的值不正确,遇到过没有?
★坚鸿-深圳:
除非是const或code数组,否则其它变量数组我都会给固定长度的。
不撸僧-云南:
你读取的时候超出你的定义数组的长度了吧?
★肖亚平-成都:
没有超出长度,只是没有给长度。我找了好久才找到,编译器不会报错,不好找。有两种原因,第一是我操作不规范。第二是编译器优化得太厉害了,都没有报错。
★坚鸿-深圳:
因为对单片机来说,const或code常量数组,它们的长度是编译器根据初始化的数据量而定的,如果是其它变量数组,没有给固定长度就很不规范了,就显得很奇怪,也没必要那样做。
★肖亚平-成都:
int a[];a = 'C';a = 'H';
字符串C是对的,H不对。串口只能输出C,H是错误的。
★坚鸿-深圳:
什么编译器?
★肖亚平-成都:
KEIL。STM32单片机。
★坚鸿-深圳:
结论:
当没有指定数组变量的长度,并且没有初始化时,keil默认此变量数组只有一个元素的长度。
页:
[1]