日志档案

发表于 2008-2-26 17:24:58

1

标签: 无标签

i++ ++i

#includ"stido.h"
main()
{
int a="5";
z=(++a)+(a++)+(++a);       //*z=6+6+8=20    *//

printf("z=%d",&z);
}

得20。对吗???  

单片机用C好还是用汇编的好。!!?  为什么??

系统分类: 软件开发   |   用户分类: 无分类   |   来源: 无分类   |   【推荐给朋友】

    阅读(594)    回复(2)  

投一票您将和博主都有获奖机会!

  • highrain

    2008-3-25 9:41:56

    首先不考虑a = "5"是否可以通过编译,就算a=5;那么表达式计算的结果 = 6+5+6 = 17; 然后假设a ="5"可以通过编译,那么字符串在内存中存放的是'5','\0',即低地址为35和高地址为0;对于int型参数,小端系统,应该高位在高地址,低位在地址,那么a应该是35,那么最后结果是107. 另外关于单片机用C还是用汇编要看实际情况而定,好的C编译器反汇编后的代码效率几乎可以和汇编媲美,而且使用C语言的代码可读性更高;如果不是对时间非常苛刻的代码,或者是要使用指定的指令的代码,强烈建议使用C语言来代替。当然如果是学习的话可以使用汇编,这样可以对于C语言编译后的汇编代码可以有大致的了解。

  • z315666016

    2008-4-5 18:54:21

    谢谢大哥的点评···