zoukankan      html  css  js  c++  java
  • 成员变量为函数指针的结构体的理解

      看到一段代码

    typedef struct{
        int (* initialize)(void);
    
    }FSMC_T;
    
    FSMC_T fsmc = {
        .initialize = initialize
    };
    
    static int initialize(void)
    {
        GPIOD->CRH.W = 0xbbbbbbbb;
        GPIOD->CRL.W = 0xbbbbbbbb;
    
        GPIOE->CRH.W = 0xbbbbbbbb;
        GPIOE->CRL.W = 0xbbbbbbbb;
    
        FSMC_Bank1->BCR1 &= ~(1 << 1 | 1 << 2 | 1 << 3);
    
        FSMC_Bank1->BCR1 |= 1 << 14; //EXTMOD
    
        FSMC_Bank1->BTR1 = 0x601;
    
        FSMC_Bank1E->BWTR1 = 0X300;
    
        return 0;
    }
    typedef struct{
        int (* initialize)(void);
    
    }FSMC_T;

    这里将 FSMC_T定义为一个结构体,该结构体有一个函数指针的成员。
    FSMC_T fsmc = {
        .initialize = initialize
    };
    这里定义了一个FSMC_T类型的结构体变量。并初始化函数指针指向initialize。

    虽然读懂了整个过程,但是现在还不明白作者为啥要这么写。这样写有什么好处?
  • 相关阅读:
    命令行
    作业三C++
    作业二
    0003---简单的a+b问题
    0002---五层小山
    0001---Hello world
    关于OJ的那些事
    CDQ分治学习笔记
    C++ IO的一些注意点
    Vscode配置C++环境
  • 原文地址:https://www.cnblogs.com/WeyneChen/p/4434229.html
Copyright © 2011-2022 走看看