zoukankan      html  css  js  c++  java
  • uboot 二重指针 init_fnc_t ** init_fnc_ptr

    昨晚看老朱的视频,老朱说不懂二重指针来看他这个uboot的视频是狗看星星。

    当时心里虚的一逼,自己第一看确实没看懂,赶快百度看了下,在源码中把这个单独提出来练习了下。

    linux 下编译。

    具体代码如下:

    #include <stdio.h>
    #include <stdlib.h>

    typedef int (init_fnc_t) (void);  // 函数类型定义 返回值为int 参数为 void 命名为 init_fnc_t

     // 定义满足类型的函数 fun1---fun4
    int fun1(void)  
    {
        printf("%s,%d ",__FUNCTION__,__LINE__);
        return 0;
    }

    int fun2(void)
    {
        printf("%s,%d ",__FUNCTION__,__LINE__);
        return 0;
    }

    int fun3(void)
    {
        printf("%s,%d ",__FUNCTION__,__LINE__);
        return 1;
    }

    int fun4(void)
    {
        printf("%s,%d ",__FUNCTION__,__LINE__);
        return 1;
    }

    // 定义满足函数类型的数组
    init_fnc_t *init_sequence[] = {
        fun1,
        fun2,        
        fun3,
        fun4,
        NULL,
    };

    int main()
    {
        init_fnc_t ** init_fnc_ptr;

     // 通过二重指针来遍历数组
        for (init_fnc_ptr = init_sequence; *init_fnc_ptr; ++init_fnc_ptr)
        {
            printf("%s,%d ",__FUNCTION__,__LINE__);
            #if 1
            if ((*init_fnc_ptr)() != 0)
            {
                printf("%s,%d ",__FUNCTION__,__LINE__);
            }
            #endif
        }
    }

  • 相关阅读:
    IceMx.Mvc 我的js MVC 框架 二、视图的数据绑定
    IceMx.Mvc 我的js MVC 框架 一、html代码的分离(视图)
    Android Socket编程基础
    第七次作业
    第六次作业
    第五次作业
    第4次作业
    关于个人项目的总结,最主要是不足
    第二次作业
    微信的优缺点以及发展史
  • 原文地址:https://www.cnblogs.com/zhangjianrong/p/15217623.html
Copyright © 2011-2022 走看看