【发布时间】:2014-04-02 06:04:08
【问题描述】:
通过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 更改为.cpp 来检查多次首次编译,反之亦然。为什么它会表现出这种行为? (我不确定其他人是否也经历过给定示例)
【问题讨论】:
标签: c visual-c++ visual-studio-2008 lnk2005