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 50 int x[SIZE]; int y[SIZE]; int i; int *p1,*p2; 1:使用下标方案 void strcpy()转载 2012-04-24 11:14:19 · 2171 阅读 · 0 评论 -
绝对值相关
abs()是如何来求绝对值的并且看看它的效率如何,所以反汇编出来看了下: sar $0x1f,%edx xor %edx,%eax sub %edx,%eax 对应c语言: //求int a的绝对值 b = a >> 31; a = a ^ b; a = a - b; 起初还没想透为什么这样就能得到绝对值,再细想,对右移理解有误(微机原理忘光了,汗颜)。 要理解上述程序需要了解转载 2012-04-22 22:20:01 · 724 阅读 · 0 评论
分享