IAR FOR 430 C语言问题
P5DIR|=0X10与P5DIR|=(1<<4)有没有区别?执行效率? 我认为后者效率肯定略低,因为要先移位 前者高,后者低,如果做乘除法运算后者这种形式效率很高 编译后,看看产生的汇编代码。正常情况下,因为1 << 4中的1和4都是常量,编译器会自动换成0x10,这种情况下,效率是一样的。
没有验证,仅供参考。 经验证1《4都是常量,编译器会自动变异成0x10,代码与上一句完全相同,但是换成
unsigned char a=4;
P5DIR|=(1<<a);
则会多编译出很多语句,效率变低了。 学习了! 直接赋值可能更快些吧 谢谢各位!还需要再努力学习C语言啊 回复【楼主位】guisi 柯护祥
---------------------------------------------------------------------
第一个是按位相或只能打开一个端口, 后面那个是能够开多个端口的。
页:
[1]