use*_*863 2 c declaration global-variables extern
我在这里看到这个问题: 如何使用extern在源文件之间共享变量? 按照手册.但我仍然得到链接器错误...很想得到一些帮助和解释为什么它发生..
我有2个.c文件和一个头文件:
------ check.h ----
#ifndef check
#define check
extern int num;
#endif
Run Code Online (Sandbox Code Playgroud)
---- ---- check.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);
}
Run Code Online (Sandbox Code Playgroud)
---- ---- 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;
}
Run Code Online (Sandbox Code Playgroud)
我一直收到这些错误:
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
Run Code Online (Sandbox Code Playgroud)
我写了#ifndef的东西以及extern声明,那么问题是什么?
谢谢!