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

Sign in to follow this  
samuca

warning: implicit declaration of function

Recommended Posts

samuca

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.

Share this post


Link to post
Share on other sites
n3lThon

Estás a incluir a biblioteca time.h?


dreams.each do |dream|

   dream.make_it_happen

end

Share this post


Link to post
Share on other sites
Baderous

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

Com que flags é que estás a compilar?

Share this post


Link to post
Share on other sites
nata79

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.

Share this post


Link to post
Share on other sites
samuca

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

Share this post


Link to post
Share on other sites
Baderous

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.

Share this post


Link to post
Share on other sites
nata79

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...

Share this post


Link to post
Share on other sites
samuca

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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.