+ Responder ao Tópico



  1. #1
    shinzo
    Visitante

    Padrão Uma dúvida na função printf

    Como ela foi feito ? Entrei no dir include entrei no arquivo stdio.h e encontrei apenas o protótipo da função :

    int printf(const char *_format, ...);

    Qual a explicação ? Onde ta o resto ?

  2. #2
    itamarjp
    Visitante

    Padrão Re: Uma dúvida na função printf

    provavelmente mais em baixo.

    vc deve ter olhado apenas no cabeçalho do arquivo.


  3. #3

    Padrão Re: Uma dúvida na função printf

    Amigo, o resto está em arquivos objeto, pré-compilados.
    O que você faz ao inserir um #include no seu código, é dizer ao compilador o protótipo das funções, os tipos, e as variáveis que irá utilizar (sim, há muito mais, mas não vem ao caso agora), assim, o compilador saberá de que forma compilar o seu programa, reservando os devidos espaços na memória, aferindo referências a posições de memória, e adicionando algum código necessário, automaticamente. Quem cria o binário, neste caso um ELF, é o LINKER, e não o compilador. O Linker tem o trabalho de ler os arquivos objeto e criar o binário, levando em conta as dependências dos arquivos entre si, as bibliotecas necessárias, e assim por diante.
    Tentei explicar de uma forma simples. Mas não sei se consegui ser suficientemente claro.
    Você pode pesquisar mais sobre COMPILADOR e LINKER se desejar detalhes mais técnicos.
    Qualquer dúvida posta novamente aí.

    Bom estudo!

  4. #4

    Padrão Re: Uma dúvida na função printf

    Ah, e sobre onde encontrar o código da função printf..
    Voce encontrará no código-fonte da GLIBC (http://directory.fsf.org/glibc.html)
    Seu compilador utiliza as funções da libc caso você utilize algum header da mesma. O que é padrão
    Nesse caso, a função printf (http://www.die.net/doc/linux/man/man3/printf.3.html), é parte da libc, definida pelo header stdio.h.
    Você pode utilizar o comando "man" para encontrar a documentação das funções da libc.
    Por exemplo:
    man 3 printf

    Espero ter contribuído.


  5. #5
    ABG
    Visitante

    Padrão Re: Uma dúvida na função printf

    Desculpa perguntar, mas porque vc está tão interessado em printf?

    Citação Postado originalmente por shinzo
    Como ela foi feito ? Entrei no dir include entrei no arquivo stdio.h e encontrei apenas o protótipo da função :

    int printf(const char *_format, ...);

    Qual a explicação ? Onde ta o resto ?

  6. #6
    shinzo
    Visitante

    Padrão Re: Uma dúvida na função printf

    É que eu gostaria de saber ao fundo, quem sabe usar o C como um assembly.

  7. #7
    ABG
    Visitante

    Padrão Re: Uma dúvida na função printf

    Como assim usar o C como um Assembly?
    O C é um compilador de nível intermediário, o Assembly é uma linguagem de baixo nível (próxima a linguagem de máquina do computador). Eu gosto muito dos dois, mas hoje em dia é melhor programar em C se vc pretende ter algo mais portável, o Assembly vai te prender a máquina em que vc criou o programa.

    Seja mais específico em sua dúvida, diga exatamente o que vc quer para que possamos ajudá-lo.

    Um abraço



    Citação Postado originalmente por shinzo
    É que eu gostaria de saber ao fundo, quem sabe usar o C como um assembly.

  8. #8
    shinzo
    Visitante

    Padrão Re: Uma dúvida na função printf

    Eu achava interessante controlar o hardware, e lembro que meu amigo uma vez falou que o irmão dele foi em uma palestra falando de como usar o C em baixo nível. É algo interessante, mas nem achei material sobre. Obrigado pela ajuda.

  9. #9
    ABG
    Visitante

    Padrão Re: Uma dúvida na função printf

    Dá pra fazer isso de várias maneiras, vai depender de um monte de coisas:

    1) Qual é o sistema operacional
    2) Qual o tipo de hardware que vc deseja manipular
    3) Qual compilador será usado
    4) O que vc deseja fazer

    etc.... Se vc for mais específico talvez eu possa ajudar já que tb me interesso por essa área.

    Citação Postado originalmente por shinzo
    Eu achava interessante controlar o hardware, e lembro que meu amigo uma vez falou que o irmão dele foi em uma palestra falando de como usar o C em baixo nível. É algo interessante, mas nem achei material sobre. Obrigado pela ajuda.

  10. #10
    shinzo
    Visitante

    Padrão Re: Uma dúvida na função printf

    Eu queria aprender a controlar os meus periféricos pra depois entrar no ramo de mecatrônica. Não tinha nem idéia do que controlar :| mas achava isso interessante. Hoje em dia me interesso por programação em Java, já que funciona em várias plataformas. Vc tem msn pra gente trocar umas idéias?

  11. #11
    ABG
    Visitante

    Padrão Re: Uma dúvida na função printf

    [email protected]

    Citação Postado originalmente por shinzo
    Eu queria aprender a controlar os meus periféricos pra depois entrar no ramo de mecatrônica. Não tinha nem idéia do que controlar :| mas achava isso interessante. Hoje em dia me interesso por programação em Java, já que funciona em várias plataformas. Vc tem msn pra gente trocar umas idéias?