通过MSDN的 RPC 教程,我刚刚创建了一个包含两个.c
文件的项目,如下所示:
/* file hellop.c */
#include <stdio.h>
#include <windows.h>
void HelloProc(char * pszString)
{
printf("%s\n", pszString);
return ;
}
和
/* file: hello.c */
#include "hellop.c"
void main(void)
{
char * pszString = "Hello, World";
HelloProc(pszString);
return ;
}
编译器为什么以及在哪里看到多个符号定义或声明HelloProc(char*)
?
编辑::正如在这个SO_Question中得出的结论,包括.h
文件显然是最好的解决方案。但这是否让我们无法实现可以将一个.c
文件包含到另一个.c
文件中的设计?
奇怪的行为::第一次编译运行良好,但解决方案的重建因上述错误而中断。.c
您可以通过将文件名更改为to来检查多次首次编译,.cpp
反之亦然。为什么它会表现出这种行为?(我不确定其他人是否也通过给定的示例经历过这种情况)