C中链接错误的多重定义

时间:2011-08-11 11:42:38

标签: c linker


我正在用C开发一个应用程序。我想在多个源文件中使用同名的本地函数。让我简化一下这个问题:

in hell.c

void myLocalFunc(){ printf("Hello hell\r\n"); }

在world.c中

void myLocalFunc(){ printf("Hello world\r\n"); }

因为它们只是本地函数,所以我不在头文件中声明它们。但是当我编译项目时,它给了我“'myLocalFunc'的多重定义'”错误信息以及这一个:“'myLocalFunc'的多重定义'(在这里首先定义)”。

我的错误是什么?

1 个答案:

答案 0 :(得分:8)

将其替换为

static void myLocalFunc(){ printf("Hello world\r\n"); }

或者,如果你正在使用C ++,你也可以使用这样的匿名命名空间:

namespace {
void myLocalFunc(){ printf("Hello world\r\n"); }
}