2

我在这里看这个问题: 如何使用 extern 在源文件之间共享变量? 跟着手册。但我仍然收到链接器错误......希望得到一些帮助和解释为什么会发生......

我有 2 个 .c 文件和一个头文件:

------检查.h----

#ifndef check
#define check

extern int num;

 #endif

----检查.c----

   #include "check.h"
   #include <stdio.h>



   int func(int x, int y)
   {
int z = x+y;
return z;
   }
   void printnum()
   {
num++;
printf("%d",num);
   }

----ynnynyny.c----

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <string.h>
#include "check.h"
#include "check.c"


int num = 10;
int main() 
{ 
printf("num before is : %d\n",num);
printnum();
printf("num now is : %d",num);
getchar();


return 0; 
}

我不断收到这些错误:

1>  ynnyny.c
1>  check.c
1>  Generating Code...
1>ynnyny.obj : error LNK2005: _func already defined in check.obj
1>ynnyny.obj : error LNK2005: _printnum already defined in check.obj

我写了#ifndef 的东西和extern 声明,那么问题是什么?

谢谢!

4

1 回答 1

6

不要在 ynnynyny.c 中包含“check.c”

于 2012-07-19T17:53:06.440 回答