2015-10-23 45 views
1

我想作爲一個更大的項目的一部分運行以下功能:的Xcode錯誤「衝突型」運行的C代碼非常簡單的功能

#include <memory.h> 

void bzero(char *s, int n) 
{ 
    memset (s, 0, n); 
} 

我收到以下錯誤: 「衝突'bzero'的類型「

我不明白這個問題,因爲整個項目在Linux上工作正常。所以我實際上試圖將它傳輸到Mac上,並使用Xcode創建和執行文件,但它甚至不會構建。

回答

2

在您的系統中已經有一個bzero函數(一個現在被刪除的舊版POSIX函數)和一個不同的原型。命名您的功能不同,如my_bzero

+0

謝謝你!這工作。也許你也可以幫助我處理另一個反覆出現的構建錯誤,這個錯誤在我的項目的每個文件中都有。它一直給我提供「控制達到非void函數結束」的消息。我知道這意味着函數MIGHT在不返回任何東西的情況下達到最終結果,或者至少意味着編譯器認爲它可能發生。然而,我再次運行這個項目多年,現在在Linux上沒有問題。有沒有辦法繞過呢?就像也許只是'返回0'? – GuyTal

+1

@GuyTal你已經在你的編譯器中啓用了這個項目多年沒有啓用警告。是的,在得到此警告的函數末尾添加一個'return 0;'語句(假設該函數返回算術類型值)。如果你想繼續關於這個話題的討論,我建議你用一個示例代碼打開一個新問題。 – ouah

0

bzero是在系統編程中使用的非標準C函數,這會導致您的系統發生衝突。它有原型

void bzero(void *s, size_t n);