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
        }
    }

  • 相关阅读:
    函数的定义
    函数名的本质
    函数进阶
    三元运算
    数据类型 补充
    安装python问题
    neo4j nosql图数据库学习
    ubutun lunix 64安装neo4j 图形数据库
    git error: object file .git/objects/b9/e269f50db2a3415cc8ad5ba40b82b9b6a13d45 is empty
    django orm 时间处理
  • 原文地址:https://www.cnblogs.com/zhangjianrong/p/15217623.html
Copyright © 2011-2022 走看看