Você está na página 1de 3

Linguagem C

(Diretivas de Compilao)

Prof. Edson Pedro Ferlin

by Prof. Edson Pedro Ferlin

Introduo
So comandos que no so compilados, pois so dirigidos
ao compilador:

#include incluir arquivo externo na compilao;


#define define valor padro;
#if compila se expresso constante
#else complemento if;
#ifdef compilao condicional;
#endif fim ifdef, ifndef e elif;
#ifndef contrrio da ifdef;
#elif estrutura if-else-if
#undef desconsidera macro;

www.professorferlin.blogspot.com 1
Diretiva
by Prof. Edson Pedro Ferlin

#define
Utiliza-se o comando #define para definir um identificador e
uma string. O compilador substituir o identificador pela string
toda vez que aquele for encontrado no arquivo fonte. O
identificador chamado de nome de macro, e o processo
de substituio chamado de substituio de macro.

Forma geral: #define identificador string

Exemplos :
#define verdadeiro 1
#define Max_pix 256
#define um 1
#define erro_1 "erro padro na entrada\n"
#define PRN(n) printf("%f\n",n)
#define SOMA(x,y) (x + y)
#define Produto(x,y) ((x)*(y))
#define min(a,b) (a<b)?a:b

Diretiva
by Prof. Edson Pedro Ferlin

#include
O comando #include do pr-processador instrui o compilador a
incluir um outro arquivo-fonte com aquele que contm o
comando #include. Deve-se envolver o arquivo-fonte lido entre
aspas ou entre o sinal de maior e menor.

Exemplos: #include "stdio.h"


#include <stdio.h>

#include "stdio.h" indica que o compilador procurar o arquivo


stdio.h no diretrio corrente.

#include <stdio.h> indica que o compilador procurar o


arquivo stdio.h nos diretrios especificados na linha de comando
da opo -I do compilador, se no encontrar o arquivo, procurar
nos diretrios padres. O diretrio de trabalho corrente no
ser pesquisado em momento algum.

www.professorferlin.blogspot.com 2
Diretiva
by Prof. Edson Pedro Ferlin

#ifdef

Compilao condicional

#define PORT_0 0x378


...
/* linhas de codigo */
...
#ifdef PORT_0
#define PORTA PORT_0
#include ../sys/port.h
#endif

Diretiva
by Prof. Edson Pedro Ferlin

#if-else

Compilao condicional com constante;

#define SISTEMA DOS


...
/* linhas de codigo */
...
#if SISTEMA==DOS
#define CABECALHO dos_io.h
#else
#define CABECALHO unix_io.h
#endif

#include CABECALHO

www.professorferlin.blogspot.com 3