码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2020-02-28 12:06:29      阅读:506      评论:0      收藏:0      [点我收藏+]

标签:include   vport   printf   style   针对   class   使用   ++   不能   

一 符号概念:

  在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\n");
}
void SVC_Handler (void) __attribute__((weak));

void SVC_Handler (void)
{
    int cnt = 0;


    while(1)
    {
        sleep(1);
        printf("svc handler cnt:%d \n",cnt++);
    }
}

#define vPortSVCHandler     SVC_Handler

int main()
{

    func2();
    vPortSVCHandler();


    return 0;
}

   

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

标签:include   vport   printf   style   针对   class   使用   ++   不能   

原文地址:https://www.cnblogs.com/dylancao/p/12376413.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!