• 结构体及共用体的初始化方法


    结构体初始化:
     
    /************************************************************
    *  全局变量定义
    ************************************************************/
    AD_CTL_ST g_AdCtl; //定义结构体变量
    AD_BUF_ST g_AdBuf[BUF_NUM]; //定义结构体数组
     
     
    /************************************************************
    *  初始化结构体
    ************************************************************/
    PRIVATE void AdStcInit(void)
    {
        int i;
        AD_CTL_ST *pAC = &g_AdCtl;
        AD_BUF_ST *pAB = g_AdBuf;
       
        pAC->Flag = OFF;
        pAC->Cnt  = CLEAR;
       
        for(i = 0; i < BUF_NUM; i++,pAB)
        {
      /* 均可实现初始化, MemSet函数需自己实现 */
            //(void)MemSet(g_AdBuf[i].AdBuf, CLEAR, sizeof(g_AdBuf));
            (void)MemSet(pAB->AdBuf, CLEAR, sizeof(pAB->AdBuf));
        }
    }

    共用体初始化:
     
        在共用体变量定义的同时只能用第一个成员的类型值进行初始化,共用体变量初始化的一般形式:union 共用体类型名 共用体变量 = { 第一个成员的类型名 };
    /************************************************************
    *  定义宏
    ************************************************************/
     #define SYS_TF_NUM  1U
     
     
    /************************************************************
    *  定义结构体
    ************************************************************/
    typedef union
    {
        INT8U _c;
        struct
        {
            INT8U flg   :1;
            INT8U ctr   :7;
        }Bits;
    }Sys_TaskFlg_st;
     
    //定义联合体变量
     Sys_TaskFlg_st Sys_TaskFlg[SYS_TF_NUM];
    /************************************************************
    *  初始化
    ************************************************************/
    PRIVATE void StructInit(void)
    {
      for(i=0;i<=SYS_TF_NUM;i++)
      {
        sys_TaskFlg[i]._c   = 0;
      }
    }
  • 相关阅读:
    算法之路 level 01 problem set
    算法原理与实践(链表)
    散列表(HashTable)
    系统设计与实践(实战演练)
    桶排序 + 基数排序
    算法原理与实践(二叉树)
    Total Difference String
    【翻译】std::list::remove
    【翻译】std::remove
    Observer模式实践
  • 原文地址:https://www.cnblogs.com/ownDefine/p/10802063.html
Copyright © 2020-2023  润新知