长长整型代替指针进行函数传参
函数调用传参不用指针传递, 而用强转为unsingned long long 进行传入, 在函数内强转为该数据类型的指针,意义何在?
1 . 函数传参, 传递指针和传递unsigned long long , 是不是后者更快呢?
分析: 从汇编指令进行分析, 发现没有什么差异。
反汇编参考链接
c代码:
#include<stdio.h>
typedef struct
{
int a;
int b;
int c;
int d;
int e;
} DATA_PTR_T;
int func_longlong
(
unsigned long long a
)
{
int sum;
DATA_PTR_T * tmp = (DATA_PTR_T *) a;
sum = tmp->a + tmp->b + tmp->c + tmp->d + tmp->e;
return sum;
}
int func_ptr
(
DATA_PTR_T * tmp
)
{
int sum;
sum = tmp->a + tmp->b + tmp->c + tmp->d + tmp->e;
return sum;
}
int main(int argc, char * argv)
{
int data1;
int data2;
printf("short %ld , int %ld , long %ld , long long %ld \n",
sizeof (short), sizeof (int), sizeof (long), sizeof (long long ));
DATA_PTR_T data = {
1,2,3,4,5};
data1 = func_longlong((