Números aleatórios sem

Home Fóruns Linguagem C Números aleatórios sem

Marcado: 

Visualizando 1 resposta da discussão
  • Autor
    Posts
    • #67057
      Caroline Pacheco
      Participante

      Na aula M01A09 – Números aleatórios, o professor Guanabara fala da necessidade de importar uma biblioteca para usar o comando rand(), já que esse não está na <stdio.h> (minuto 1:40 do vídeo), mas sim na <stdlib.h> que é “a biblioteca responsável por carregar a funcionalidade de gerar números aleatórios“, em suas palavras. Neste vídeo o código dele começa assim:

      #include <stdio.h>
      #include <stdlib.h>
      #include <time.h>

      Porém, na aula em que ele resolve o Ex005 (último vídeo do módulo 1, minuto 03:40), o professor não utiliza a <stdlib.h>. Ele coloca duas vezes <stdio.h>, como abaixo:

      #include <stdio.h>
      #include <locale.h>
      #include <stdio.h>
      #include <time.h>

      Acreditei que era uma desatenção e que o código não funcionaria, mas mesmo assim o código funciona. Fiquei sem entender como, já que no outro vídeo ele disse que seria necessário utilizar a biblioteca <stdlib.h>.

      Grata pela atenção 🙂

    • #67070
      Tutora Mayla
      Mestre

      Caroline, o rand() realmente é da biblioteca stdlib.h. O que aconteceu nesse caso é que quando o C não reconhece a função de lugar nenhum ele trata a função de uma forma genérica o que causa um comportamento indefinido. Por acaso nesse exemplo esse comportamento indefinido foi a função ter um retorno válido. Mas não é uma regra, foi um caso bem específico onde funcionou sem a importação, geralmente com outras funções não vai funcionar.
      O correto é importar a biblioteca porque a função pertence a biblioteca.

      Espero ter ajudado, quaisquer outras dúvidas estamos a disposição.

Visualizando 1 resposta da discussão
  • Você deve fazer login para responder a este tópico.