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;
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论