Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #58 da revista programar. Faz já o download aqui!

PsySc0rpi0n

[Resolvido] como implementar headers

Mensagens Recomendadas

PsySc0rpi0n    8
PsySc0rpi0n

Boas malta...

Como se cria um header file para colocarmos code comum a todo um programa?

Eu já tentei criar um ficheiro com o nome common.h.

Lá dentro coloquei tudo o que necessito para o programa.

Depois no file principal fiz o include dele como faço para os headers normais mas não funcionou...

Edited;

Acabei de ver um exemplo mas não sei nem conheço algumas coisas...

O exemplo foi este

#ifndef FOO_H_   /* Include guard */
#define FOO_H_
int foo(int x);  /* An example function declaration */
#endif

Precisava de explicação linha a linha...

Não conheço os ifndef e o FOO_H_ tem mesmo que ter este formato?

Se o nome do header for common.h ali tenho que colocar COMMON_H_?

Editado por PsySc0rpi0n

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
KTachyon    274
KTachyon

ifndef é "if not defined" (se não está definido). O que vem a seguir é um nome de uma variável do preprocessador.

Sempre que estás a trabalhar com o preprocessador deves dar nomes às variáveis que não vás utilizar no código, caso contrário o proprocessador irá substituir todas as ocorrências desse nome pela definição. Ex:

#define PI 3.14

//...

double x = r * PI;

O teu compilador vai ler:

double x = r * 3.14;

Porque antes do compilador correr, o preprocessador já substituiu todas as ocorrências de PI.

A notação FOO_H_ para um ficheiro foo.h é uma forma de evitares que isso aconteça (porque acredito que não declares variáveis assim no código). Não precisa de ser FOO_H_, até podias utilizar ficheiro_global_carregado, mas é preferível que declares as variáveis do preprocessador com um estilo completamente diferente das variáveis do código para evitar problemas.

Editado por KTachyon

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
PsySc0rpi0n    8
PsySc0rpi0n

Mas o FOO_H_ tem que ter alguma correspondência com o nome do header ou pode ser o que eu quiser?

E depois o include no file principal TEM que ser #include "header.h" ou pode ser #include <header.h>???

Outra questão:

Quando compilar o file principal é preciso mais alguma coisa para que o header.h fique a funcionar ou é apenas compilar o ficheiro principal do programa?

E por fim mais uma:

O que é o /*include guard*/ que está logo na primeira linha do exemplo?

Editado por PsySc0rpi0n

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. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.