No.99585 作者:pauljoe 邮件:zhou.min@qianlong.com ID:63009 登陆:1次 文章数:1篇 最后登陆IP:61.48.65.253 最后登陆:2006/11/14 10:02:22 注册:2006/11/9 17:16:18 财富:117 发帖时间:2006/11/14 10:02:22 发贴者IP:61.48.65.253 标题:pauljoe:[求助] ARM编程:关于IAR编译结果的问题 摘要:No.99585[求助] ARM编程:关于IAR编译结果的问题 struct TIME { unsigned char uu; unsigned char nn; }; struct AAA { unsigned char a; struct TIME aa; struct TIME bb; unsigned char buf[100]; }; …… void test(struct TIME a) { //sys_trace("%04x, %04x, %04x", a.uu, b.uu, b.nn); sys_trace("%04x", sizeof(a.uu)); sys_trace("%04x", a.nn); sys_trace("%04x", sizeof(a.uu)); //sys_trace("%d, %d, %d, %d", c.uu, c.nn, d.uu, d.nn); } int xxxxx(……, struct AAA *stru) { …… test(stru-> aa); …… } 如上程序 在sys_trace("%04x", a.nn);这里 不管是a.uu还是a.nn都是unsigned char型才对 我用IAR 4.30A编译后的结果却是 1051 void test(struct AAA a) 1052 { \ test: \ 00000000 10B5 PUSH {R4,LR} \ 00000002 041C MOV R4,R0 1053 // 1054 sys_trace("%04x", sizeof(a.uu)); \ 00000004 0121 MOV R1,#+0x1 \ 00000006 .... LDR R0,??DataTable65 ;; `? <Constant "%04x"> ` \ 00000008 ........ _BLF sys_trace,sys_trace??rT 1055 sys_trace("%04x", a.uu); \ 0000000C 211C MOV R1,R4 \ 0000000E .... LDR R0,??DataTable65 ;; `? <Constant "%04x"> ` \ 00000010 ........ _BLF sys_trace,sys_trace??rT 1056 sys_trace("%04x", sizeof(a.uu)); \ 00000014 0121 MOV R1,#+0x1 \ 00000016 .... LDR R0,??DataTable65 ;; `? <Constant "%04x"> ` \ 00000018 ........ _BLF sys_trace,sys_trace??rT 1057 // 1058 } 和 1051 void test(struct AAA a) 1052 { \ test: \ 00000000 01B5 PUSH ......
>>返回讨论的主题
|