2011-08-11 47 views
3


我正在開發一個應用程序C.我想在一個以上的源文件中使用同名的本地函數。讓我來簡化問題:C中鏈接錯誤的多重定義

在hell.c

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

在world.c

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

因爲他們是當地的功能而已,我不在頭文件中聲明它們。但是當我編譯這個項目時,它給了我「myLocalFunc的多重定義」錯誤信息,還有這個:「myLocalFunc的多重定義」(這裏首先定義)「。

這裏我的錯誤是什麼?

回答

8

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

替換它,或者如果你使用C++,你也可以使用匿名命名空間是這樣的:

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

這是正確的答案和一個真正的緊急幫助。謝謝。 – Fer