提问:weak_alias (name1, name2)
c语言吧
全部回复
仅看楼主
level 1
百度了下weak_alias,大概了解了一下,不过他们好像都是这么使用的:
name1() __attribute__ ((weak,alias("name2"))); // 大概是这么使用的吧。。。
所以感觉weak_alias应该是个宏?
我是在看代码时发现的weak_alias。
在argv.h头文件中作如下声明(参数列表太长了。。省掉[乖]):
extern error_t __argz_create (...) __THROW;
extern error_t argz_create (...) __THROW;
然而实际在argz-create.c中仅仅实现了上述声明的第一个函数:
error_t __argz_create (...)
{
balabalabalabala....
return 0;
}
我就想这声明两个函数,仅仅实现一个,这不应该吖~~~
然后看到后面紧跟着一个:
weak_alias (__argz_create, argz_create)
这是不是说把这两个函数联系到了一起?它们实际是一个函数,共用一个具体实现?
这东西我们能直接在自己的代码中使用么?就像它那样直接使用可以哒?
看起来好像很酷的样子~
2015年09月28日 16点09分 1
level 1
沉的有点快~
2015年09月28日 16点09分 2
[惆怅~]
2015年09月28日 23点09分
西出阳关无故人,记住我叫叶良辰
2015年09月29日 00点09分
[惆怅~]
2015年09月29日 02点09分
[蜷]
2015年09月29日 03点09分
level 11
搜了一下好像是gnu c的特性,能不能在仅有标准c的情况下编译通过还不知道
2015年09月29日 04点09分 3
1