C语言
L_Backkom
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
交换两个数的值Swap的一些方法及其源代码实现
宏形式#define swap(a,b) a^=b^=a^=b#define swap(a,b) (a-=(b=-b+(a+=b)))或#define swap(a,b) a=a+b;b=a-b;a=a-b //这里最后没有分号更好宏定义比较容易有副作用,最好给每个变量括号。函数形式typedef int ElementType;//第一种方法voi转载 2012-05-04 14:27:02 · 1260 阅读 · 0 评论 -
C语言 数组 下标与指针 效率解析
以字符串拷贝函数为例,解析数组中下标与指针的效率情况。指针的效率至少和下标相同。(原因参考C下标的实现原理,注意编译器差异,因为部分编译器针对下标设置了特殊汇编指令,不做考虑)#define SIZE 50int x[SIZE];int y[SIZE];int i;int *p1,*p2;1:使用下标方案void strcpy()转载 2012-04-24 11:14:19 · 2171 阅读 · 0 评论 -
绝对值相关
abs()是如何来求绝对值的并且看看它的效率如何,所以反汇编出来看了下:sar $0x1f,%edxxor %edx,%eaxsub %edx,%eax对应c语言://求int a的绝对值b = a >> 31;a = a ^ b;a = a - b;起初还没想透为什么这样就能得到绝对值,再细想,对右移理解有误(微机原理忘光了,汗颜)。要理解上述程序需要了解转载 2012-04-22 22:20:01 · 724 阅读 · 0 评论
分享