长长整型代替指针进行函数传参

长长整型代替指针进行函数传参

函数调用传参不用指针传递, 而用强转为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((
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值