文档章节

结构体初始化测试

AllenOR灵感
 AllenOR灵感
发布于 2017/09/10 00:47
字数 302
阅读 1
收藏 0

最近在看Asterisk的源代码,收获不小,决定记录下来学习Asterisk过程中的点滴,分享给大家,也方便我以后查阅……

今天让我感到意外的是Asterisk中对结构体初始化(或者说成是赋值)的使用。

比如定义结构体如下:

typedef struct ST {
int a;
int b;
pFun fun;
}ST;

一般的初始化是这样的:

ST t2;
t2.a=4;
t2.b=5;
t2.fun=test2;

而我在源码中看到的是这样的:

ST t1 = {.a=1,.b=2,.fun=test1};

感觉好强大。。。。。。

这里是我仿照着写的完整代码:

 1 #include <stdio.h>
 2 
 3 typedef void (*pFun)(int a);
 4 
 5 typedef struct ST {
 6     int a;
 7     int b;
 8     pFun fun;
 9 }ST;
10 
11 void test1(int a)
12 {
13     printf("test1 : %d\r\n",a);
14 }
15 
16 void test2(int a)
17 {
18     printf("test2 : %d\r\n",a);
19 }
20 
21 int main()
22 {
23     ST t1 = {
24     .a=1,
25     .b=2,
26     .fun=test1
27     };
28     
29     printf("%d\t%d\n",t1.a,t1.b);
30     t1.fun(3);
31     
32     ST t2;
33     t2.a=4;
34     t2.b=5;
35     t2.fun=test2;
36     
37     printf("%d\t%d\n",t2.a,t2.b);
38     t2.fun(6);
39     
40     return 0;
41 }

这里存盘为test20120608.c,进行如下操作:

make test20120608 && ./test20120608

测试结果:

本文转载自:http://www.cnblogs.com/MikeZhang/archive/2012/06/08/structuresTest1.html

AllenOR灵感
粉丝 11
博文 2635
码字总数 83001
作品 0
程序员
私信 提问

暂无文章

好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
今天
6
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
今天
6
0
【技术分享】TestFlight测试的流程文档

上架基本需求资料 1、苹果开发者账号(如还没账号先申请-苹果开发者账号申请教程) 2、开发好的APP 通过本篇教程,可以学习到ios证书申请和打包ipa上传到appstoreconnect.apple.com进行TestF...

qtb999
今天
10
0
再见 Spring Boot 1.X,Spring Boot 2.X 走向舞台中心

2019年8月6日,Spring 官方在其博客宣布,Spring Boot 1.x 停止维护,Spring Boot 1.x 生命周期正式结束。 其实早在2018年7月30号,Spring 官方就已经在博客进行过预告,Spring Boot 1.X 将维...

Java技术剑
今天
17
0
浅谈java过滤器Filter

一、简介 Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是过滤字符编码、做一些业务逻辑判断如是否有权限访问页面等。其工作原理是,只要你在web.xml...

青衣霓裳
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部