【转】__attribute__ 之weak,alias属性
来源:互联网 发布:mac os x 10.10虚拟机 编辑:程序博客网 时间:2024/05/16 10:08
//strong.c
#include <stdio.h>
void symbol1()
{
printf("%s.%s\n",__FILE__,__FUNCTION__);
}
//weak.c
#include <stdio.h>
void symbol1() __attribute__ ((weak,alias("symbol222")));
//void symbol1() __attribute__ ((weak));
void symbol222()
{
printf("%s.%s\n",__FILE__,__FUNCTION__);
}
int main()
{
//asm(".weak symbol1\n\t .set symbol1, symbol222\n\t");
if(symbol1)
symbol1();
return 0;
}
////////////////////////////////////////
//gcc weak.c strong.c -o weak
//./weak
//输出:strong.c.symbol1
////////////////////////////////////////
//gcc weak.c -o weak
//./weak
//输出:weak.c.symbol222
////////////////////////////////////////
//总结weak属性
//(1)asm(".weak symbol1\n\t .set symbol1, symbol222\n\t");与
// void symbol1() __attribute__ ((weak,alias("symbol222")));等效。
//(2)给函数加上weak属性时,即使函数没定义,函数被调用也可以编译成功。
//(3)当有两个函数同名时,则使用强符号(也叫全局符号,即没有加weak的函数)来代替弱符号(加weak的函数)。
//(4)当函数没有定义,但如果是“某个函数”的别名时,如果该函数被调用,就间接调用“某个函数”。
原文见:http://hi.baidu.com/sdwffzlll/item/7c99bef78a30afc7531c26f8
- 【转】__attribute__ 之weak,alias属性
- __attribute__ 之weak,alias属性
- __attribute__ 之weak,alias属性
- __attribute__ 之weak,alias属性
- __attribute__ 之weak,alias属性
- __attribute__ 之weak,alias属性
- __attribute__ 之weak,alias属性 .
- GCC __attribute__ 之weak,alias属性
- _attribute__ 之weak,alias属性
- gcc之weak,alias属性
- gcc __attribute__ ((weak, alias (#name)))
- gcc __attribute__ ((weak, alias (#name))) 1
- int main (void) __attribute__ ((weak, alias ("alt_main")));
- gcc weak/alias/weakref/__typeof()属性总结
- __attribute__((weak))
- __attribute__((weak))
- __attribute__((weak))
- __attribute__((weak))
- 使用PowerPoint2013组合形状以创建自定义形状
- android小技巧
- c xml parser
- 【SqlServer2005+ 查询优化】MSSQL优化SQL语句 提高数据库的访问性能
- android 将log保存到文本
- 【转】__attribute__ 之weak,alias属性
- CloseHandle(),TerminateThread(),ExitThread()的区别
- iOS开发缓存机制之—内存缓存机制
- LocalActivityManager
- android中类 Locale的使用
- ubuntu使用tap/tun
- postgreSQL触发器控制更新字段
- 索引介绍
- javascript内置对象