linux中C语言编程问题
#include<stdio.h>inti=3;__attribute__((weak))inti=2;intmain(void){printf("i=%d\n",i);...
#include <stdio.h>
int i = 3;
__attribute__ ((weak)) int i = 2;
int main(void)
{
printf("i = %d\n", i);
return 0;
}
为什么定义为弱符号了还提示我重复定义啊??强符号不是能覆盖弱符号吗 展开
int i = 3;
__attribute__ ((weak)) int i = 2;
int main(void)
{
printf("i = %d\n", i);
return 0;
}
为什么定义为弱符号了还提示我重复定义啊??强符号不是能覆盖弱符号吗 展开
2个回答
展开全部
weak不是这么用的,它主要是在动态库中定义接口,供库用户调用自定义函数。
你可以看下wiki的例子:
http://en.wikipedia.org/wiki/Weak_symbol
weak也可以用在变量上面。语法应该是这样的:
int i __attribute__ ((weak)) = 2;
你可以看下wiki的例子:
http://en.wikipedia.org/wiki/Weak_symbol
weak也可以用在变量上面。语法应该是这样的:
int i __attribute__ ((weak)) = 2;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询