zoukankan      html  css  js  c++  java
  • linux内核中GNU C __attribute__ 机制的实用

      很多东西,只看看是不行的,要想深入的去了解一个东西,一定要去不断地学习,实践,反思。

    说白了就是要去打磨。

      在linux中,最近遇到了这样一个定义:

    int board_usb_init(int index, int usb_init_type) __attribute__((weak, alias("__board_usb_init")));

    一下子懵逼了,啥意思?不懂的东西,还是要查一下的:

      weak 和 alias 分别是两个属性。

      weak 使得 foo 这个符号在目标文件中作为 weak symbol 而不是 global symbol

      而 alias 则使 foo 是 __foo 的一个别名。

      清楚之后,就要实例来看一下了,估计这下大家就清楚了。

    #include <stdio.h>
    
    //__weak int __board_usb_init(int index, enum usb_init_type init)
    int __board_usb_init(int index, int usb_init_type)
    {
            printf("my test is ok
    	");
            return 0;
    }
              
    int board_usb_init(int index, int usb_init_type)
            __attribute__((weak, alias("__board_usb_init")));
             
            
    int main()
    {            
            board_usb_init(0,1);
            return 0;
    }

      

  • 相关阅读:
    【Python】异常处理
    【Python】写入文件
    【Python】从文件中读取数据
    【Python】导入类
    【Python】继承
    【Python】使用类和实例
    SQL HAVING
    SQL GROUP BY
    SQL ORDER BY
    SQL CREATE INDEX
  • 原文地址:https://www.cnblogs.com/dylancao/p/8557873.html
Copyright © 2011-2022 走看看