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

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

在世界上。
void myLocalFunc(){ printf("Hello world\r\n"); }

因为它们只是本地函数,所以我不会在头文件中声明它们。但是当我编译这个项目时,它给了我“mylocalfunc的多个定义”错误消息,还有这个消息:“mylocalfunc的多个定义(首先在这里定义)”。
我在这里犯了什么错?

最佳答案

换成

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

或者,如果你使用C++,你也可以使用这样的匿名命名空间:
namespace {
void myLocalFunc(){ printf("Hello world\r\n"); }
}

07-24 09:27