Ir para o conteúdo
samuca

warning: implicit declaration of function

Mensagens Recomendadas

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
nata79    0
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.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
samuca    0
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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Baderous    31
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.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
nata79    0
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...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
samuca    0
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.

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


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade