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

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;

}

狮心王理查德一世的陨落 青叶/文 在谈到金雀花王朝的“狮心王”理查德时,人们总是会惊叹,那是一位真正的骑士,而不是将他的角色直接定义为一位国王。...
红米2跑分多少?红米手机2安兔兔与鲁大师跑分成绩图文评测