• 结构体初始化测试


    最近在看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

    测试结果:

  • E-Mail : Mike_Zhang@live.com
  • 转载请注明出处,谢谢!
  • 相关阅读:
    该虚拟机似乎正在使用中,请获取所有权
    分配销售区域
    未对销售组织 XXX 分销渠道 00 语言 ZH 定义
    Bash 遍历目录
    plsql 不需配置*.ora就可以访问数据库
    arch linux
    拓端数据tecdat|R语言有限混合模型(FMM,finite mixture model)及其EM算法聚类分析间歇泉喷发时间
    拓端数据tecdat|使用R语言进行多项式回归、非线性回归模型曲线拟合
    拓端数据tecdat|R语言使用ARIMAX预测失业率经济时间序列数据
    拓端数据tecdat|R语言用ARIMA模型,ARIMAX模型预测冰淇淋消费时间序列数据
  • 原文地址:https://www.cnblogs.com/MikeZhang/p/structuresTest1.html
  • Copyright © 2020-2023  润新知