PsySc0rpi0n Posted April 28, 2013 at 10:52 AM Report #505048 Posted April 28, 2013 at 10:52 AM (edited) 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 April 28, 2013 at 10:57 AM by PsySc0rpi0n Kurt Cobain - Grunge misses you Nissan GT-R - beast killer
KTachyon Posted April 28, 2013 at 01:41 PM Report #505056 Posted April 28, 2013 at 01:41 PM (edited) 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 April 28, 2013 at 01:42 PM 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
PsySc0rpi0n Posted April 28, 2013 at 02:15 PM Author Report #505063 Posted April 28, 2013 at 02:15 PM (edited) 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 April 28, 2013 at 02:18 PM by PsySc0rpi0n Kurt Cobain - Grunge misses you Nissan GT-R - beast killer
PsySc0rpi0n Posted April 28, 2013 at 04:12 PM Author Report #505075 Posted April 28, 2013 at 04:12 PM Já consegui. Já podem encerrar... Kurt Cobain - Grunge misses you Nissan GT-R - beast killer
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now