Publicada por Sd_Ribeiro em 22/05/2007 - 16:33h:
* Sd_Ribeiro usa Debian

Olá. Sou iniciante no ling. C.
Tou fazendo um programa que tá dando erro numa única linha

ImprimeRacional('cn', c);
Tipo de erro: 14 C:Dev-CppTeste_Racional.c [Warning] overflow in implicit constant conversion.
Alguem pode me ajudar?
Código da função
void ImprimeRacional(char id, Racional r)
{
printf("%c: %d/%dn", id, r.num,r.den);
}

Código da função main:
#include "TADRacional.h"

int main(void)
{
Racional a, b, c;
char id;
a = CriaRacional(2, 0);
b = CriaRacional(6, 8);
c = AdicionaRacionais(a, b);
ImprimeRacional('cn', c);
getche();
return 0;
}

  
 
Resposta de EdDeAlmeida em 22/05/2007 - 17:03h:
* EdDeAlmeida usa Debian
* EdDeAlmeida tem conceito: nenhum voto.
 


Ilustre colega que está iniciando a vida como "garoto de programa", o seu erro é bem simples de enxergar.

Veja só, vocë definiu a função ImprimeRacional com um primeiro parâmetro char, e na hora de chamá-la passou 'cn', que não é char, mas sim uma string. Se você quer passar mais de um caracter, tem de declarar char *id, ou ainda, const char *id, se você vai passar sempre uma constante.

Espero que isso ajude!

 
Resposta de Sd_Ribeiro em 22/05/2007 - 20:53h:
* Sd_Ribeiro usa Debian
* Sd_Ribeiro tem conceito: nenhum voto.
 


Valeu.
Muito simples.

  


ATENÇÃO: Antes de contribuir com uma resposta, leia o artigo Qualidade de respostas e certifique-se de que esteja realmente contribuindo com a comunidade. Muitas vezes o ímpeto de contribuir nos leva a atrapalhar ao invés de ajudar.

Contribuir com resposta



CAPTCHA
[ Recarregar imagem ]

Digite o código acima:

  
* Nota: só é possível enviar respostas usuário que possui conta e esteja logado com ela, caso contrário sua mensagem será perdida.