__attribute __((弱))覆盖现有函数

时间:2017-03-15 16:39:35

标签: c gcc glibc libc

我正在尝试my question的一些解决方案。

说我在运行itoa的系统上运行。我有这段代码:

char *my_itoa (int a, char *b, int c)
{
    return itoa(a, b, c);
}

char* __attribute__ ((weak)) itoa(int a, char* b, int c)
{
     strcpy(b, "No itoa");
}

如果我使用上述代码致电my_itoa(10, str, 10)puts(str)会给我“No itoa”。

但是,如果我只是写:

char *my_itoa (int a, char *b, int c)
{
    return itoa(a, b, c);
}

并致电my_itoa(10, str, 10)puts(str)给我“10”。

我的理解是,如果__attribute__ ((weak))尚未实现,{{1}}将实现一个功能。这是真的吗?这是怎么回事?

0 个答案:

没有答案