Ir para o conteúdo
PsySc0rpi0n

[Resolvido] como implementar headers

Mensagens Recomendadas

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

Kurt Cobain - Grunge misses you

Nissan GT-R - beast killer

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
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

“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
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

Kurt Cobain - Grunge misses you

Nissan GT-R - beast killer

Partilhar esta mensagem


Ligação 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.