• 结构体初始化测试


    最近在看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
  • 转载请注明出处,谢谢!
  • 相关阅读:
    Centos7 dos界面和图像界面切换
    hadoop环境搭建
    Maven学习总结
    爬虫系列之-----Requests库 高级
    爬虫系列之----Requests库
    关系模型--关系完整性
    机器学习实战----Apriori算法进行关联分析
    定时器中断
    PWM控制led渐变
    中断之外部中断
  • 原文地址:https://www.cnblogs.com/MikeZhang/p/structuresTest1.html
  • Copyright © 2020-2023  润新知