|
本帖最后由 mmxx2015 于 2025-7-19 00:12 编辑
原以为第一种写法不能通过sizeof()获得数组长度,想不到Keil编译器那么聪明,初始化几个值就分配几个字节。
- unsigned char jianpan[]={0,0,0,0,0,0};
- unsigned char jianpan1[6];
- unsigned char jianpan2[6]={0,0,0,0,0,0};
- unsigned char jianpan_size;
- unsigned char jianpan1_size;
- unsigned char jianpan2_size;
- void main(void)
- {
- jianpan_size=sizeof(jianpan);
- jianpan1_size=sizeof(jianpan1);
- jianpan2_size=sizeof(jianpan2);
-
- while(1);
- }
复制代码- RSEG ?DT?MAIN
- jianpan_size: DS 1
- jianpan1: DS 6
- jianpan2: DS 6
- jianpan1_size: DS 1
- jianpan2_size: DS 1
- jianpan: DS 6
- RSEG ?C_INITSEG
- DB 006H
- DB jianpan
- DB 000H
- DB 000H
- DB 000H
- DB 000H
- DB 000H
- DB 000H
- DB 006H
- DB jianpan2
- DB 000H
- DB 000H
- DB 000H
- DB 000H
- DB 000H
- DB 000H
- ; jianpan_size=sizeof(jianpan);
- ; SOURCE LINE # 15
- MOV jianpan_size,#06H
- ; jianpan1_size=sizeof(jianpan1);
- ; SOURCE LINE # 16
- MOV jianpan1_size,#06H
- ; jianpan2_size=sizeof(jianpan2);
- ; SOURCE LINE # 17
- MOV jianpan2_size,#06H
复制代码
|
|