【发布时间】:2012-05-29 20:02:48
【问题描述】:
在函数 main() {...}
1) #include头文件string.h
2) 我对自己的文件进行原型制作,称之为 strcpy:
**char *strcpy(char *strSource , const char *dest);**
3) 我也希望在 main() 的 string.h 中使用“真正的”strlen 函数。
4) 在另一个编译文件中,我有我的 strcpy 版本。
问题:如何让链接器选择我的 strcpy 版本而不是 string.h 中的原型?
enter code here
#include <conio.h>
#include <string.h>
char *strcpy(char *source , const char *dest);
void main()
{
char *s, *d;
strcpy(s,d);
getch();
}
#include <stdio.h>
char *strcpy(char *strDestination, const char *strSource)
{
char *ptr;
printf("made it!");
return ptr;
}
【问题讨论】:
-
标题和标签不建议使用相同的语言。请更改它。
-
请问您为什么要这样做?似乎有些恶毒。 :P 我的意思是为什么不把你的 strcpy 命名为不同的名字,即
myStrcpy(); -
抛开命名空间问题...
const char *表示指向您无法更改的字符的指针。为什么你的dest会是const char*?? -
链接器不关心声明!标头不是库。库不是标题。
-
@HostileFork:他使用了wrong order的参数,应该是
char * strcpy ( char * destination, const char * source );。
标签: c