prog:guia-de-estudo-c
Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
Ambos lados da revisão anteriorRevisão anteriorPróxima revisão | Revisão anterior | ||
prog:guia-de-estudo-c [2024/05/18 19:02] – [Mais bibliotecas] seção criada hrcerq | prog:guia-de-estudo-c [2024/12/28 01:05] (atual) – [História] correção ortográfica hrcerq | ||
---|---|---|---|
Linha 67: | Linha 67: | ||
O [[https:// | O [[https:// | ||
- | também é útil para obter uma visão geral sobreo | + | também é útil para obter uma visão geral sobre o tema. |
Linha 189: | Linha 189: | ||
etapas, notadamente: | etapas, notadamente: | ||
- | - Pré-processamento | + | - [[prog: |
- | - Compilação propriamente | + | - [[prog: |
- | - Montagem | + | - [[prog: |
- | - Ligação | + | - [[prog: |
As ferramentas que desempenham essas funções podem ou não estar | As ferramentas que desempenham essas funções podem ou não estar | ||
Linha 204: | Linha 204: | ||
* [[https:// | * [[https:// | ||
* [[https:// | * [[https:// | ||
+ | * // | ||
Existem vários compiladores C, alguns mais conhecidos e populares, | Existem vários compiladores C, alguns mais conhecidos e populares, | ||
Linha 221: | Linha 222: | ||
Conhecer ao menos esses dois já será suficiente para compreender as | Conhecer ao menos esses dois já será suficiente para compreender as | ||
funções centrais desse tipo de ferramenta. | funções centrais desse tipo de ferramenta. | ||
+ | |||
+ | === Pré-processamento === | ||
+ | |||
+ | Ao ler arquivos-fonte C, você talvez tenha reparado que algumas | ||
+ | linhas iniciam pelo caractere de jogo-da-velha (''#'' | ||
+ | que essa notação também é parte da linguagem C. Ledo engano. | ||
+ | |||
+ | Essas instruções são conhecidas como diretivas de pré-processamento, | ||
+ | e são usadas como um complemento da linguagem C para automatizar a | ||
+ | geração de partes do código C, antes que ele efetivamente seja | ||
+ | compilado (daí o nome " | ||
+ | |||
+ | Por exemplo, as diretivas de inclusão (''# | ||
+ | de um outro arquivo-fonte C (por convenção, | ||
+ | extensão '' | ||
+ | definição (''# | ||
+ | serão substituídos pelo valor definido em cada ocorrência. | ||
+ | |||
+ | Essas substituições são feitas pelo pré-processador. Além disso, ele | ||
+ | também substitui // | ||
+ | substitui comentários por espaços em branco. | ||
+ | Tudo isso é feito antes da compilação. O arquivo gerado pelo | ||
+ | pré-processamento terá código C, exclusivamente. | ||
+ | |||
+ | Você pode saber mais sobre as funções do pré-processador a partir | ||
+ | dos documentos a seguir: | ||
+ | |||
+ | * [[https:// | ||
+ | * // | ||
+ | |||
+ | Existem diferentes pré-processadores, | ||
+ | fazem parte de uma coleção de ferramentas para compilação, | ||
+ | GCC, Clang, TCC e outros, porém também existem pré-processadores | ||
+ | avulsos. Alguns exemplos: | ||
+ | |||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[http:// | ||
+ | * [[https:// | ||
+ | |||
+ | === Compilação === | ||
+ | |||
+ | === Montagem === | ||
+ | |||
+ | === Ligação === | ||
==== Biblioteca C ==== | ==== Biblioteca C ==== | ||
Linha 280: | Linha 327: | ||
* // | * // | ||
- | Não por acaso, algumas bibliotecas C voltadas para esses sistemas (vide [[prog: | + | Não por acaso, algumas bibliotecas C voltadas para esses sistemas (vide [[prog: |
===== Gerenciadores / Construtores ===== | ===== Gerenciadores / Construtores ===== | ||
Linha 308: | Linha 355: | ||
* [[http:// | * [[http:// | ||
+ | É desejável, sempre que possível, criar arquivos '' | ||
+ | portáveis, isto é, que funcionem em diferentes implementações. | ||
+ | Isto facilita significativamente a manutenção quando há | ||
+ | possibilidade de usar uma implementação diferente. | ||
+ | |||
+ | Por exemplo, em distribuições GNU/Linux, é mais comum o uso do | ||
+ | GNU Make, muitas vezes já instalado por padrão no sistema. Nos | ||
+ | BSDs, o mais comum é a implementação conhecida como '' | ||
+ | Ao criar scripts '' | ||
+ | diferentes, considere aderir totalmente ao padrão POSIX. | ||
+ | |||
+ | Isso pode ser um pouco difícil se você já tiver se acostumado | ||
+ | a uma implementação específica. O artigo a seguir oferece | ||
+ | algumas dicas nesse sentido. | ||
+ | |||
+ | * // | ||
===== Estilos de programação ===== | ===== Estilos de programação ===== | ||
prog/guia-de-estudo-c.1716069728.txt.gz · Última modificação: 2024/05/18 19:02 por hrcerq