• C语言中的弱符号(weak)用法及实例


    一 符号概念:

      在C语言中,有强符号和弱符号,符号简单来说就是函数、变量的名字,对于全局(非局部、非static)的函数和变量,能不能重名是有一定规矩的,强、弱符号就是针对这些全局函数和变量来说的。  

    二 声明方法:

      1 使用__attribute__((weak))修饰:

    // function declaration
    
    int __attribute__((weak)) power2(int x);
    
      // or
    
    int power2(int x) __attribute__((weak));
    
    // variable declaration;
    extern int __attribute__((weak)) global_var;


    2 使用#pragma weak修饰:

    // function declaration
    #pragma weak power2
    
    int power2(int x);


    三 实例分析:

    #include <stdio.h>
    
    void SVC_Handler (void) __attribute__((weak));
    
    #pragma weak func2
    
    
    void func2(void)
    {
        printf("func2 is test
    ");
    }
    void SVC_Handler (void) __attribute__((weak));
    
    void SVC_Handler (void)
    {
        int cnt = 0;
    
    
        while(1)
        {
            sleep(1);
            printf("svc handler cnt:%d 
    ",cnt++);
        }
    }
    
    #define vPortSVCHandler     SVC_Handler
    
    int main()
    {
    
        func2();
        vPortSVCHandler();
    
    
        return 0;
    }

       

  • 相关阅读:
    2017普及组D1T3 洛谷P3956 棋盘
    2017提高组D1T1 洛谷P3951 小凯的疑惑
    Title
    Title
    Title
    Title
    Title
    Title
    Title
    Title
  • 原文地址:https://www.cnblogs.com/dylancao/p/12376413.html
Copyright © 2020-2023  润新知