Logo Hardware.com.br
jpc777
jpc777 Veterano Registrado
839 Mensagens 66 Curtidas

Erros de compilação que não aconteciam quando usava uma versão mais baixa de Dev-C

#1 Por jpc777 08/11/2006 - 12:47
frown.png


Vejam este fragmento de código. Quando eu usava Dev-C v4, não acontecia os erros de compilação abaixo. Quando mudei para uma versão superior( Dev-C++ v.4.9.9.2) eles apareceram, erros que nunca vi antes.

O que está faltando ?

/*==============================MACROS==================*/
#define TAMANHO 3 /* Define uma macro a ser subistituida ao longo do prog*/
#define INI_REG 0
#define BUFFER 1024

/*========================CABECALHOS================*/
#include <stdio.h> /* Utilizada para chamar a funcoes de arquivo*/
#include <ctype.h> /* Utilizada para chamar a funcoes toupper,isdigit e
isalpha*/
#include <string.h> /* Utilizada para chamar a funcao strlen*/
#include <conio2.h>
/*==================ESTRUTURA GLOBAL================*/
struct cadastro
{
char nome[30];
int idade;
char idade2[4];
char sexo;
char sexo2;
};

struct cadastro dados[TAMANHO]; /* Atribui a variavel dados a estrutura*/

/*=======================PROTOTIPOS====================*/
int Entradados (struct cadastro *p);
void Menu(void);
int getnum(void);
int Criarq (struct cadastro *p);
int Atualarq (struct cadastro *p);
int Learq(void);
void Apagarq (void);
void Limpalinha(void);
/*============PROGRAMA PRINCIPAL=========================*/

int Entradados (struct cadastro *p)
{
int register k,i,num,caracter; /* var num e caracter ‚ usada para
provocar nova entrada de idade caso nao seja digitado um algarismo de 0 a 9 funciona como
controle de flag que dispara a mensagem de erro*/
system("CLS&quot;
..................
..................


Erros de compilação

D:\fontec\CADASTRO.C In function `int Entradados(cadastro*)':

64 D:\fontec\CADASTRO.C `system' undeclared (first use this function)

(Each undeclared identifier is reported only once for each function it appears in.)

128 D:\fontec\CADASTRO.C `atoi' undeclared (first use this function)

168 D:\fontec\CADASTRO.C return-statement with no value, in function returning 'int'

D:\fontec\CADASTRO.C In function `void Menu()':

175 D:\fontec\CADASTRO.C `system' undeclared (first use this function)

216 D:\fontec\CADASTRO.C `exit' undeclared (first use this function)

D:\fontec\CADASTRO.C In function `int getnum()':

235 D:\fontec\CADASTRO.C `atoi' undeclared (first use this function)

D:\fontec\CADASTRO.C In function `int Criarq(cadastro*)':

250 D:\fontec\CADASTRO.C `system' undeclared (first use this function)

251 D:\fontec\CADASTRO.C return-statement with no value, in function returning 'int'

317 D:\fontec\CADASTRO.C return-statement with no value, in function returning 'int'

D:\fontec\CADASTRO.C In function `int Atualarq(cadastro*)':

331 D:\fontec\CADASTRO.C `system' undeclared (first use this function)

332 D:\fontec\CADASTRO.C return-statement with no value, in function returning 'int'

354 D:\fontec\CADASTRO.C return-statement with no value, in function returning 'int'

D:\fontec\CADASTRO.C In function `int Learq()':

367 D:\fontec\CADASTRO.C `system' undeclared (first use this function)

387 D:\fontec\CADASTRO.C return-statement with no value, in function returning 'int'

D:\fontec\CADASTRO.C In function `void Apagarq()':

D:\fontec\CADASTRO.C In function `void Apagarq()':


Obrigado
pflynn
pflynn Ubbergeek Registrado
5.5K Mensagens 122 Curtidas
#3 Por pflynn
08/11/2006 - 19:20
São erros ou apenas advertências do compilador ? Se o seu código estiver sendo compilado em C, a utilização de funções sem o uso de protótipos é desencorajada, mas não é erro, portanto, o código deve compilar. Se o código estiver sendo compilado em C++, aí a coisa é diferente e ele não pode ser compilado, pois em C++ o uso de protótipos é obrigatório.
------------------------------------------------
Muito bom. Mas tijolo não revida!
------------------------------------------------
tetim
tetim Membro Senior Registrado
366 Mensagens 1 Curtida
#4 Por tetim
09/11/2006 - 09:55
Isso não deve ter sido pela mudança na versão devcpp.
E sim por alguma flag adicionada ao projeto, como por exemplo:

-Wall (nas propriedades de projeto, no campo do compilador)

Que significa todas advertências(warning all).

Se não tiver essa linha, vale a pena colocá-la apesar de dar
uma enxurrada de warnings pela primeira vez, te "força" à
programação segura.

Veja:
http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
"Conseguirão parar uma, duas ou até tres flores, mas nunca conseguirão segurar a força de uma primavera..."[Chê Guevara]
lidyon
lidyon Tô em todas Registrado
2K Mensagens 10 Curtidas
#6 Por lidyon
10/11/2006 - 10:53
jpc777 disse:
smile.png

OK, O cabeçalho #include resolveu o problema. Eu gostaria de saber o que esta biblioteca tem para resolver o problema acima ? porque na versão mais baixa do Dev-C ela não fazia falta ao programa ?

Obrigado


A 'header' contém os protótipos para uma série de funções da biblioteca stdlib. Entre elas várias das quais vc havia chamado no seu código, como a função system, e a função atoi, entre outras. (por isso que o compilador reclamou que vc estava usando funções que não haviam sido definidas)
Provavelmente a versão anterior do programa , ou incluía automaticamente essa 'header' ou estava configurado para fazê-lo. Isso acontece...
Eu mesmo uso um compilador que inclui automaticamente a . Porém se eu não incluir essa header no meu código ele não será compilado em outro compilador que não inclua a stdio.h automaticamente... t++++
Slackware GNU/Linux 13.0
Linux User #372970

# cd /Brasil/Congresso
# rm -f ./Camara/* ./Senado/*
# echo "yuhuuuuuuuuu"
jpc777
jpc777 Veterano Registrado
839 Mensagens 66 Curtidas
#7 Por jpc777
26/11/2006 - 07:25

Provavelmente a versão anterior do programa , ou incluía automaticamente essa 'header' ou estava configurado para fazê-lo. Isso acontece...



Ok. Mas como esse automatismo cacontece ? num momento todas as funções funcionam sem chamar o cabeçalho, num outro momento preciso, isto porque não esta mais sendo chamada automaticamente, O que determina isso ?

Obrigado
smile.png
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal