LNK2001 i LNK1120 err

NeshaTheBigGuy

Primećen član
Poruka
777
Pozdrav, da li mi neko može reći šta nije u redu sa "inv" funkcijom i zašto mi prijavljuje linker error? Kad izbacim deo koda iz maina koji koristi "inv" funkciju, program savršeno radi (deo sa if(broj==3)). Nisam pro tako da go easy on me! :D
Evo greške:
http://i136.photobucket.com/albums/q161/nesha14586/greke.png

A evo i koda:
Kod:
#include<stdio.h>

int i(int a,int b);
int ili(int a, int b);
int inv(int a);
int ni(int a, int b);
int nili(int a, int b);
int exili(int a, int b);
int exnili(int a, int b);

void main()
{
	int broj,a,b,c;
	c=0;
	printf("Da biste izabrali logicko kolo, izaberite broj ispred naziva kola:\n\n1. I\n2. Ili\n3. Invertor\n4. Ni\n5. Nili\n6. Ex_ili\n7. Ex_nili\n");
	printf("\nBroj: "); 
	scanf_s("%d",&broj);
	
	if(broj==1)
	{
		printf("\nIzabrali ste I kolo.\n\nUnesite ulazne vrednosti kola:");
		scanf_s("%d%d",&a,&b);
		if((a!=0 && a!=1) || (b!=0 && b!=1)) 
			printf("Err!");
		else c=i(a,b);
		printf("\nIzlazna vrednost I kola za vrednosti %d i %d je %d\n",a,b,c);
	}

	if(broj==2)
	{
		printf("\nIzabrali ste Ili kolo.\n\nUnesite ulazne vrednosti kola:");
		scanf_s("%d%d",&a,&b);
		if((a!=0 && a!=1) || (b!=0 && b!=1)) 
			printf("Err!");
		else c=ili(a,b);
		printf("\nIzlazna vrednost Ili kola za vrednosti %d i %d je %d\n",a,b,c);
	}
	
	if(broj==3)
	{
		printf("\nIzabrali ste Invertorsko kolo.\n\nUnesite ulaznu vrednost kola:");
		scanf_s("%d",&a);
		if(a!=0 && a!=1) 
			printf("Err!");
		else c=inv(a);
		printf("\nIzlazna vrednost invertorskog kola za vrednost %d je %d\n",a,c);
	}

	if(broj==4)
	{
		printf("\nIzabrali ste Ni kolo.\n\nUnesite ulazne vrednosti kola:");
		scanf_s("%d%d",&a,&b);
		if((a!=0 && a!=1) || (b!=0 && b!=1)) 
			printf("Err!");
		else c=ni(a,b);
		printf("\nIzlazna vrednost Ni kola za vrednosti %d i %d je %d\n",a,b,c);
	}

	if(broj==5)
	{
		printf("\nIzabrali ste Nili kolo.\n\nUnesite ulazne vrednosti kola:");
		scanf_s("%d%d",&a,&b);
		if((a!=0 && a!=1) || (b!=0 && b!=1)) 
			printf("Err!");
		else c=nili(a,b);
		printf("\nIzlazna vrednost Nili kola za vrednosti %d i %d je %d\n",a,b,c);
	}

	if(broj==6)
	{
		printf("\nIzabrali ste Ekskluzivno Ili kolo.\n\nUnesite ulazne vrednosti kola:");
		scanf_s("%d%d",&a,&b);
		if((a!=0 && a!=1) || (b!=0 && b!=1)) 
			printf("Err!");
		else c=exili(a,b);
		printf("\nIzlazna vrednost Ekskluzivnog Ili kola za vrednosti %d i %d je %d\n",a,b,c);
	}

	if(broj==7)
	{
		printf("\nIzabrali ste Ekskluzivno Nili kolo.\n\nUnesite ulazne vrednosti kola:");
		scanf_s("%d%d",&a,&b);
		if((a!=0 && a!=1) || (b!=0 && b!=1)) 
			printf("Err!");
		else c=exnili(a,b);
		printf("\nIzlazna vrednost Ekskluzivnog Nili kola za vrednosti %d i %d je %d\n",a,b,c);
	}
}

int i(int a,int b)
{
	if(a==1 && b==1) return 1;
	else return 0;
} 

int ili(int a,int b)
{
	if(a==0 && b==0) return 0;
	else return 1;
} 

int inv(int a,int b)
{
	if(a==1) return 0;
	else return 1;
} 

int ni(int a,int b)
{
	if(a==1 && b==1) return 0;
	else return 1;
} 

int nili(int a,int b)
{
	if(a==0 && b==0) return 1;
	else return 0;
} 

int exili(int a,int b)
{
	if(a==b) return 0;
	else return 1;
} 

int exnili(int a,int b)
{
	if(a==b) return 1;
	else return 0;
}
 
Da, zaboravih da kažem da program treba da u zavisnosti od izabranog logičkog kola i unetih vrednosti 0 i 1 da izbaci izlaznu vrednost koja može biti 0 ili 1! Invertor mi je problem samo jer neće da se izvrši ceo program zbog te funkcije, a ne znam šta nije u redu.
 
Ti si deklarisao f-ju inv sa jednim argumentom. U programu si pozvao samo jedan argument. To tako treba. Međutim, u definiciji f-je inv pri dnu ovog koda si definisao neku f-ju inv koja ima dva argumenta, a takva nije definisana. Prema tome prevodilac pretpostavlja da je ona definisana negdje u nekom vanjskom dijelu/fajlu i zato ti javlja tu grešku.

Izbriši int b argument dolje u definiciji f-je inv.

p.s. Ako ne znaš razliku između definicije i deklaracije - deklaracija ti je navođenje imena f-je, tipa povratne vrijednosti, te argumenata, završava sa ; , dok definicija predstavlja čitav kod f-je, sve što ona radi. Deklaracija služi da kažeš da postoji nešto, a definicija (tj. tijelo f-je) kaže šta to postoji i opisuje ga.
 

Back
Top