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)
{
c语言printf用法例子简单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();
return0;
}