c语言传递结构体地址,C语言结构体类型的typedef和结构体变量的初始化和函数传递地址传递和结构体变量的相关操作...

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

struct asoc_simple_dai { //只是一个框架 不会分配空间

const char *name; // 数据类型 +属性名

unsigned int sysclk;

int slots;

int slot_width;

unsigned int tx_slot_mask;

unsigned int rx_slot_mask;

};

// typedef 类型名 xxx;

typedef struct asoc_simple_dai asoc_simple_dai_T;

asoc_simple_dai_T my_asoc_dai;// 变量的定义和初始化

//地址传递

static void get_asoc_name(asoc_simple_dai_T* asoc_simple_dai111)

{

if(asoc_simple_dai111 == NULL)

{

return ;

}

printf("asoc_simple_dai111 %s\n",asoc_simple_dai111->name);

}

// 地址传递

static void set_asoc_param(asoc_simple_dai_T* asoc_simple_dai111)

{

if(asoc_simple_dai111 == NULL)

{

return ;

}

asoc_simple_dai111->rx_slot_mask = 0xff;

asoc_simple_dai111->tx_slot_mask = 0xff;

}

// 值传递 耗内存 //

static void set_asoc_param_value(asoc_simple_dai_T asoc_simple_dai111)

{

asoc_simple_dai111.tx_slot_mask = 0x01;

asoc_simple_dai111.rx_slot_mask = 0x03;

}

int main()

{

printf("%d\n",sizeof(my_asoc_dai));

// strcpy(my_asoc_dai.name,"I2S"); // 变量的操作

// printf("my_asoc_dai.name is %s\n",my_asoc_dai.name);

my_asoc_dai.name = "I2S"; //

printf("my_asoc_dai.name is %s\n",my_asoc_dai.name);

my_asoc_dai.rx_slot_mask = 0x01;

my_asoc_dai.tx_slot_mask = 0x02;

my_asoc_dai.slots = 1;

my_asoc_dai.slot_width = 0x01;

get_asoc_name(&my_asoc_dai);

set_asoc_param(&my_asoc_dai);

printf("my_asoc_dai.tx_slot_mask is %d\n",my_asoc_dai.tx_slot_mask);

printf("my_amy_asoc_dai.rx_slot_mask is %d\n",my_asoc_dai.rx_slot_mask);

set_asoc_param_value(my_asoc_dai);//值传递的坑

printf("my_asoc_dai.tx_slot_mask 22222is %d\n",my_asoc_dai.tx_slot_mask);

printf("my_amy_asoc_dai.rx_slot_mask 2222is %d\n",my_asoc_dai.rx_slot_mask);

for(;;);

return 0;

}

b165489e2faab77df9cc239f33ae89eb.png

原文:https://www.cnblogs.com/nowroot/p/13703584.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值