Jump to content
PsySc0rpi0n

[Resolvido] como implementar headers

Recommended Posts

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_?

Edited by PsySc0rpi0n

Kurt Cobain - Grunge misses you

Nissan GT-R - beast killer

Share this post


Link to post
Share on other 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.

Edited by 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

Share this post


Link to post
Share on other 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?

Edited by PsySc0rpi0n

Kurt Cobain - Grunge misses you

Nissan GT-R - beast killer

Share this post


Link to post
Share on other sites
PsySc0rpi0n

Já consegui. Já podem encerrar...


Kurt Cobain - Grunge misses you

Nissan GT-R - beast killer

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.