#include <stdio.h>
void strcat(char* s, char* t);
int main()
{
char str1[12] = "hello";
char str2[] = ",world";
strcat(str1, str2);
printf("%s\n", str1);
return 0;
}
void strcat(char* s, char* t)
{
int i = 0, j = 0;
while(*s != '\0')
i++;
while((*(s + i++) = *(t + j++)) != '\0');
}
使用#include <stdio.h>
但是,當我蓋了,控制檯輸出:
--------------------Configuration: test16 - Win32 Debug--------------------
Linking...
LIBCD.lib(strcat.obj) : error LNK2005: _strcat already defined in test16src.obj
爲什麼? strcat
是否存在於stdio.h
?
PS: 您能否通過描述與其他文件鏈接時的進度來解釋鏈接錯誤?
標題和庫在C中不一一對應,並且在完全不同的編譯階段處理。 –
作爲一個網站的說明,擁有一個具有C庫函數名稱的函數,具有幾乎相同的語義,但仍然具有不同的原型是一個不錯的主意。 –