sexta-feira, 28 de novembro de 2008

Extensões de arquivo

Existe uma convenção usada pelos compiladores para denominarmos os programas escritos em C e todos elementos que se referem ao conjunto programa. As denominações encontradas são:

  • O fonte do programa: nome_do_programa.c
  • Arquivo Objeto: nome_do_programa.o
  • Arquivo no formato executável: nome_do_programa ou nome_do_programa.exe (não Linux)
  • Arquivo de cabeçalho: Nome_da_Biblioteca.h
  • Biblioteca: libNome_da_Biblioteca.so libNome_da_Biblioteca.a

O final do arquivo após o ponto (c,o,a,so ou nada) identifica o tipo de arquivo para o compilador. Ele usa isso para gerar o executável. Os arquivos objeto e executável podem ser deletados sem problemas, são fáceis de serem gerados. Já o .c é o fonte do programa, ele que contém o código real do que o programa fará. Para executar o compilar, você deve:

cc -o nome_do_executável nome_do_programa.c
Que chama o CC, ou, C Compiler, em geral o GCC, compilador C da GNU.

Detalhes que fazem a diferença na hora de arrumar o sistema

Um detalhe interessante de se saber é como parar a execução de um programa. Todo sistema tem sua forma particular de fazer isso. Em geral, devemos pressionar Ctrl (tecla Control) junto com C, ou junto com Z, ou mesmo D.

Outra, o comando ls é equivalente ao DIR do DOS e permite listar os arquivos do diretório atual. O comando cd, change dir, também é equivalente a outros sistemas, serve para trocar de diretório.

Pergunta bastante comum é quanto aos ambientes de desenvolvimento para se fazer um programa em C. Um editor recomendável e muito simpático chama-se VIM (veio do famosíssimo VI). Eu acho ele bastante prático, tem indicação de comandos e se integra bastante confortavelmente com o sistema. Existem outros, como o emacs (muito adoram) e alguns mais gráficos como o rhide , que parece com o Turbo C, bem prático. Outro que tem sido bem comentando, é para X,

chama-se Code Crusader, de uma checada na CNET, tem sido um dos mais baixados por lá. Vale reforçar o XWPE, também muito bom e que foi ao ar em nosso artigo de programas de algumas semanas atrás.

O arquivo de cabeçalho mais comum existente hoje é o padrão de entrada/saída, da biblioteca C padrão.

Para incluir um cabeçalho, adicione ao código fonte:
#include cabecalho.h
em cima do programa.

#include "meu_cabecalho.h"
para incluir um arquivo pessoal, que esteja no diretório atual.

#include quando ele se encontra em um dos diretórios padrão, como /usr/include.

A diretiva #include é um comando para o pré-processador, que falaremos em outra semana.

Existem situações que não precisamos dizer cabeçalho algum ou ter bibliotecas chamadas explicitamente, todo programa utiliza a biblioteca c padrão, libc. Sempre. Ou seja, programas que utilizam de suas funções não precisam que a chamem explicitamente.

#include 

main() {
printf ("Biblioteca C padrão incluida\n");
printf ("Estamos brincando em OLinux!");
}

Um programa que use funções matemáticas, como por exemplo "seno", precisará adicionar os cabeçalho da respectiva biblioteca matemática.

#include
#include

main ()

{
double x,y;

y = sin (x);
printf ("Biblioteca matemática okay!");
}

Existem variações de sistema para sistema. Isso em relação a mouse, desenhos de janelas, propriedades do terminal e várias outras situações. Necessariamente, você terá que procurar no manual do sistema (man função, uma ajuda e tanto) ou do compilador.

Não importa quantas bibliotecas você usará, sua limitação será em geral memória, toda biblioteca adiciona o fonte e o código objeto. Sistemas Operacionais como o Linux tem a capacidade de distinguir e pegar apenas as funções que interessam. Já outros, são obrigados a adicionar todos os códigos na memória, e depois de já ter perdido tempo e espaço.

Perguntas

1. Como uma biblioteca é incorporada a linguagem C?
2. Qual nome da principal biblioteca em C?
3. É possível adicionar novas funções, com o mesmo nome das biblioteca C padrão?

A forma de um programa em C

C é uma das linguagens mais flexíveis em termos de formato já existentes. É uma linguagem livre de formato. Isso quer dizer que não existem regras de onde quebrar linhas, botar chaves, e assim vai. Isso é ao mesmo tempo vantajoso mas perigoso. A vantagem é que o usuário tem a liberdade para criar um estilo que melhor lhe atenda. A desvantagem é que programas "bizarros" podem aparecer, e de impossível manutenção. Algumas dicas de se escolher uma estrutura bem definida:

* Programas maiores são de gerenciamento possível só se estiverem bem organizados.

* Programas são entendidos somente se os nomes de variáveis e funções condizem com o que fazem.

* É mais fácil achar partes de um programa se ele tiver bem ordenado, é impossível num programa totalmente desorganizado e "macarrônico" se achar algo.

Simplesmente regras rígidas na hora de escrever um programa não significam que ele terá êxito. Experiência na programação, muito bom senso e clareza de idéias são fatores decisivos na hora de se programar.

Nenhum comentário: