打印

关于数组初始化的问题

[复制链接]
2745|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
aiping1987|  楼主 | 2010-7-15 09:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我定义一个数组如下
unsigned char databuf[256] = {0x23};
我在用C8051f单片机时写这样的程序,通过WATCH窗口可以看见databuf数组里面的值全为0x23。
为什么我在用S3C2440写裸机程序的时候,用如上的定义方法,同样通过WATCH窗口看数组里面的值,怎么只有databuf[0] = 0x23 ?

相关帖子

沙发
luosudou| | 2010-7-15 11:43 | 只看该作者
编译器不同,

使用特权

评论回复
板凳
aiping1987|  楼主 | 2010-7-15 13:21 | 只看该作者
:(编译器不同,怎么会有那么大的差别:L

使用特权

评论回复
地板
xinzha| | 2010-7-15 15:47 | 只看该作者
如果不是c规范中强制规定的细节,怎么实现要看写编译器的人的喜好。

使用特权

评论回复
5
hgjinwei| | 2010-7-16 07:32 | 只看该作者
:L貌似C规范中数组定义就是“不满数据以0填充”。那个C51不是按照标准C编译的。

使用特权

评论回复
6
chentingsheng| | 2010-7-16 10:53 | 只看该作者
各个编译器的优化程度是不同的

使用特权

评论回复
7
chentingsheng| | 2010-7-16 10:53 | 只看该作者
你用的是否ADS1.2

使用特权

评论回复
8
小小粘豆包| | 2010-7-17 09:47 | 只看该作者
具体的题目是这样的:算法实现两个集合的并集?我的想法是先遍历其中的一个,与另一个数组的元素比较,如果相同,则不插入,否则,将这个元素插入另一个数组的后面。

使用特权

评论回复
9
tanglei9098| | 2010-7-17 18:23 | 只看该作者
如果按照C语言标准,在定义数组的时候同时给前几个元素赋值,那其他未赋值的元素将初始化为0。

如果出现其它末赋值的元素为第一个值的时候,可能是编译器没有按照标准做。

使用特权

评论回复
10
aiping1987|  楼主 | 2010-7-19 10:22 | 只看该作者
回7楼,我用的是ADS1.2编译器

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

38

帖子

0

粉丝