gcc之weak,alias属性
来源:互联网 发布:淘宝网旗舰店是正品吗 编辑:程序博客网 时间:2024/05/19 22:02
strong.c
#include <stdio.h>int weak_fun(int args){printf("args=%d, %s, %s\n",args, __FILE__,__FUNCTION__);return 0;}
weak.c
#include <stdio.h>static int __def_weak_fun(int args){printf("args= %d, %s, %s\n",args,__FILE__,__FUNCTION__);return -1;}int weak_fun(int errno) __attribute__((weak, alias("__def_weak_fun")));//注释这行,打开下面两条注释//int weak_fun(int errno) __attribute__ ((weak));int main(int argc, char **argv) {// asm(".weak weak_fun\n\t .set weak_fun, __def_weak_fun\n\t"); if(weak_fun) weak_fun(1000);return 0;}
$ gcc -o aa weak.c
$./aa
args= 1000, weak.c, __def_weak_fun
$gcc -o aa weak.c strong.c
$./aa
args=1000, strong.c, weak_fun
(1)asm(".weak weak_fun\n\t .set weak_fun, __def_weak_fun\n\t");
与 void weak_fun __attribute__ ((weak,alias("__def_weak_fun")));等效。
(2)给函数加上weak属性时,即使函数没定义,函数被调用也可以编译成功。(3)当有两个函数同名时,则使用强符号(也叫全局符号,即没有加weak的函数)来代替弱符号(加weak的函数)。
(4)当函数没有定义,但如果是“某个函数”的别名时,如果该函数被调用,就间接调用“某个函数”。
0 0
- gcc之weak,alias属性
- GCC __attribute__ 之weak,alias属性
- __attribute__ 之weak,alias属性
- _attribute__ 之weak,alias属性
- __attribute__ 之weak,alias属性
- __attribute__ 之weak,alias属性
- __attribute__ 之weak,alias属性
- __attribute__ 之weak,alias属性
- __attribute__ 之weak,alias属性 .
- gcc weak/alias/weakref/__typeof()属性总结
- 【转】__attribute__ 之weak,alias属性
- gcc attribute weak & alias应用
- gcc attribute weak & alias应用
- gcc __attribute__ ((weak, alias (#name)))
- gcc attribute weak & alias应用
- gcc attribute weak & alias应用
- 2011-08-17 gcc属性之weak。
- gcc __attribute__ ((weak, alias (#name))) 1
- 数值算法
- java定时任务
- linux core
- nginx上传大文件配置
- Java+MySQL实现网络爬虫程序
- gcc之weak,alias属性
- 超简单的 Web 爬虫程序(转贴)
- 三天打鱼,两天晒网
- 手把手教你把Vim改装成一个IDE编程环境(图文)
- 火炬之光中人物被遮挡效果在Ogre中的实现方法
- java keytool 工具
- 1019. General Palindromic Number
- java4android学习《前十一集》
- 精通安卓性能优化-第二章(五)