• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

samuca

warning: implicit declaration of function

9 mensagens neste tópico

Olá pessoal, estou a aprender C e tenho utilizado o GCC para compilar os meus programas em C.

Um dos programas tem uma função que gera números aleatórios. Para isso recorro às funções random, time, srandom da biblioteca stdlib.h.

A minha questão é, quando eu compilo aparecem-me warnings do género:  warning: implicit declaration of function ‘srandom’

Não tenho qualquer problema a executar o programa, no entanto gostava de limpar estar mensagens. Alguém me pode ajudar?

Peço desculpa se é uma dúvida básica, ainda não percebo muito de C.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O rand e srand estão na stdlib.h. O time está na time.h.

Com que flags é que estás a compilar?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

isso quer dizer que estás a usar uma função que não está definida nem no teu código nem em nenhuma das bibliotecas que incluíste.

como disse o Baderous o srand está na stdlib.h portanto, provavelmente esqueces-te de fazer o "include" desta biblioteca.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim, tinha-me esquecido de incluir a biblioteca time.h, um dos warnings desapareceu.

No entanto estou a incluir a biblioteca stdlib.h e ainda tenho os warnings das funções random e srandom.

Estou a compilar com as flags -ansi -Wall

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

isso quer dizer que estás a usar uma função que não está definida nem no teu código nem em nenhuma das bibliotecas que incluíste.

Nem sempre. Por exemplo, estou a usar a função strdup, que supostamente está na string.h, a qual incluí, e no entanto dá-me esse warning compilando com a flag -std=c99. Sem essa flag, já não dá. Isto acontece porque a strdup faz parte da extensão ao ISO C.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já resolvi, troquei o nome das funções random para rand, srandom para srand... Obrigado pessoal pela a rápida ajuda.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Nem sempre. Por exemplo, estou a usar a função strdup, que supostamente está na string.h, a qual incluí, e no entanto dá-me esse warning compilando com a flag -std=c99. Sem essa flag, já não dá. Isto acontece porque a strdup faz parte da extensão ao ISO C.

desconhecia essa flag...

Já resolvi, troquei o nome das funções random para rand, srandom para srand... Obrigado pessoal pela a rápida ajuda.

pois... convem sempre verificar o nome das funções que se utiliza... às vezes perde-se grandes quantidades de tempo à conta de "errozinhos" assim...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

pois... convem sempre verificar o nome das funções que se utiliza... às vezes perde-se grandes quantidades de tempo à conta de "errozinhos" assim...

Sim, mas o estranho é que funcionava tudo bem... O programa gerava os números tal como eu queria. O único problema era do warning.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora