/ / extern deklarácie a hlavičkové súbory v C - c, globálne premenné, deklarácia, extern

externé deklarácie a hlavičkové súbory v C - c, globálne premenné, deklarácia, externé

Pozrel som sa na túto otázku tu: Ako môžem použiť externé zdieľanie premenných medzi zdrojovými súbormi? nasledovala príručka. ale stále dostávam chyby služby Linker ... Rád by som získal pomoc a vysvetlenie, prečo sa to deje.

Mám 2 súbory c a jeden súbor hlavičky:

------ check.h ----

#ifndef check
#define check

extern int num;

#endif

---- ---- 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);
}

---- ---- 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 : %dn",num);
printnum();
printf("num now is : %d",num);
getchar();


return 0;
}

Získavam tieto chyby:

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

Napísal som #ifndef veci a tiež extern vyhlásenie, takže čo je problém?

Vďaka!

odpovede:

6 pre odpoveď č. 1

don "t zahŕňať" check.c "v ynnynyny.c