Logo Hardware.com.br
CaSt
CaSt Super Participante Registrado
573 Mensagens 5 Curtidas

[Resolvido] Conflicting Types - C

#1 Por CaSt 31/05/2006 - 12:37
Olá para todos.

Eu queria saber qual é a CAUSA, MOTIVO, RAZÃO ou CIRCUNSTANCIA, desse warning aparecer, apesar de acreditar ser algo extremamente tolo, não consigo removê-lo, exemplo:

Chamada (Linha 10):
zera_Matriz(m);


Funcao (Linha 103):

void zera_Matriz(int m[][MAX])
{
int i,j;

for(i=0;i<MAX;i++)
for(j=0;j<MAX;j++)
m[i][j] = 0;
}


Warning1 (Linha 104 - main.c):
Conflicting Types for 'zera_Matriz'


Warning2 (Linha 10 - main.c):
previous implicit declaration of 'zera_Matriz' was here


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Se eu declaro a funcao como 'int zera_Matriz(int m[][MAX])' e coloco um 'return(algumacoisa)' no final, funciona sem warnings...

Aguardo respostas, obrigado.
peczenyj
peczenyj Geek Registrado
3K Mensagens 75 Curtidas
#3 Por peczenyj
31/05/2006 - 14:12
Vc precisa do protótipo da função antes de usa-la, em C. Se no momento em que a função for chamada não existir um protótipo, convenciona-se que a função retorna um inteiro. Se vc declara função antes de usala, não ha problema, se declara depois, antes deve incluir um protótipo, que nada mais seria que

void zera_Matriz(int m[][MAX]);

ou ainda

void zera_Matriz(int);
CaSt
CaSt Super Participante Registrado
573 Mensagens 5 Curtidas
#6 Por CaSt
01/06/2006 - 20:10
A matriz 'm' está declarada no main():

int m[MAX][MAX];
int valor,qtd,i,j,auxlinha,auxcoluna,x,y,linha,coluna;


E logo abaixo já vem a chamada da funcao 'zera_Matriz(m)' (que corresponde a linha 10).

Eu tentei inserir um protótipo da funcao, logo abaixo da área destinada ä inclusão de bibliotecas, da seguinte forma:

void zera_Matriz(int);


a chamada da funcao eu deixei do jeito que estava: 'zera_Matriz(m)', e a funcao propriamente dita ficou assim: 'void zera_Matriz(int m[][MAX])'.

O problema é que dessa forma, aparece um warning:

 warning: passing arg 1 of `zera_Matriz' makes integer from pointer without a cast


e dois erros:

Conflicting Types for zera_Matriz

previous declaration of zera_Matriz


A única maneira de compilar sem nenhum probleminha é retornar um valor para e funcao e deixa-la como inteira.

Obrigado pelas respostas, ainda no aguardo.

Abraços
Linux User #394367
Asking Smart Questions

"Always remember that you are unique. Just like everyone else"
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal