- Entrou
- Set 23, 2006
- Mensagens
- 1,690
- Gostos Recebidos
- 0
O Pré-Processador não é C++ propriamente dito, mas faz parte da linguagem. Nesta secção vou deixar aqui os comandos do Pré-Processador que existem, alguns dos quais já largamente conhecidos como o #include ou o #define...
#include
Esta deve ser a directiva de pré-processamento mais usada em C/C++...
#define
Esta directiva de pré-processamento serve para definir constantes simbólicas ou macros:
Por norma, não é obrigatório, as constantes são escritas em letras maiúsculas.
macros
Podemos usar o #define e fazer algumas "funçõezitas", isso são as macros:
Ora bem, o que aconteceria é que seria substituido MUL(2,3) por 2*3. Há no entanto regras precisas no uso de macros, pois suponhamos que punhamos MUL(2+3,4+5), ela seria transformada em 2+3*4+5... o que é diferente de (2+3)*(4+5). Teriamos de usar parêntises , aqui ficam as regras, numa macro são sempre colocados 3 níveis de parêntises:
1. À volta de cada um dos parâmetros existentes na expansão da macro.
2. À volta de cada expressão.
3. À volta de toda a macro
#include
Esta deve ser a directiva de pré-processamento mais usada em C/C++...
O que irá acontecer é que a linha #include <iostream> será substituida pelo conteúdo do ficheiro iostream, e assim se pode usar todas as definições e código relacionadas com esse ficheiro. Por convenção, os headers(ficheiros .h que se usa nos includes) ficam entre <> quando são standard C/C++ e entre "" quando são criados pelo programador.#include <iostream>
#include "MyClasses.h"
#define
Esta directiva de pré-processamento serve para definir constantes simbólicas ou macros:
O que acontece é que o pré-processador irá substituir todas as ocorrências de, por exemplo, a palavra AGE, pela sua definição, neste caso, por 20. AGE não está definida na memória.. e será usada somente em compile time.#define NOME "Pedro Santos"
#define AGE 20
(...)
cout<< NOME <<" "<< AGE;
Por norma, não é obrigatório, as constantes são escritas em letras maiúsculas.
macros
Podemos usar o #define e fazer algumas "funçõezitas", isso são as macros:
ela macro funciona como uma função, mas com uma particularidade, não lhe interessa o tipo das variáveis x e y. De facto, era assim que em C se tratavam de vários tipos numa só função, com o aparecimento dos templates as macros deixaram de ter a importãncia que tinham, mas continuam a ter diversas utilidades.#define MUL(x,y) x*y
(...)
cout<< MUL(2,3);
Como se pode ver, aqu
Ora bem, o que aconteceria é que seria substituido MUL(2,3) por 2*3. Há no entanto regras precisas no uso de macros, pois suponhamos que punhamos MUL(2+3,4+5), ela seria transformada em 2+3*4+5... o que é diferente de (2+3)*(4+5). Teriamos de usar parêntises , aqui ficam as regras, numa macro são sempre colocados 3 níveis de parêntises:
1. À volta de cada um dos parâmetros existentes na expansão da macro.
2. À volta de cada expressão.
3. À volta de toda a macro
Só mais uma coisa, as macros têm de ser escritas na mesma linha, se quisermos usar mais que uma linha, teremos de usar o operador continuidade '\':#define MUL(x,y) ( (x)*)
(...)
cout<< MUL(2+3,4+5); // cout<< ( (2+3)*(4+5) );
#define MIN ( ( (a) < (b) ) ? (a) : (b) )
// pode ficar
#define MIN ( ( (a) < (b) ) ? \
(a) : \
(b) )