#define (Linguagem C)

4 respostas
C

Um outro uso da diretiva #define é o de simplesmente definir uma macro.
Neste caso usa-se a seguinte forma geral:
#define nome_da_macro
Neste caso o objetivo não é usar a macro no programa (pois ela seria
substituída por nada), mas, sim, definir uma macro para ser usada como uma
espécie de flag. Isto quer dizer que estamos definindo um valor como sendo
"verdadeiro" para depois podermos testá-lo.

alguém entendeu?
exemplo pra ilustrar?

4 Respostas

quikkoo

parece q essa citação se refere a algum trecho de código, e sem esse código a qual ela se refere é difícil entender, poste o código, o link, diga qual era o contexto em que vc tirou isso, ajudaria bastante…

flw, t+

C

não se refere a nenhum código… =/

por isso q não consegui entender.
sem um exemplo fica difícil…

mas se alguém conseguir entender… favor explicar =]

dev.rafael
#define LINUX

int main() {
#ifdef LINUX
    printf("Isso é um programa Linux");
#else
    printf("Isso não é um programa Linux");
#endif
}

Assim se vc quiser compilar p/ diferentes plataformas basta mudar ou remover a macro.

ViniGodoy

Um uso comum é para impedir que um header seja importado duas vezes:

Arquivo seuheader.h
ifndef __SEUHEADER_H__ //Apenas compile o código abaixo se não foi definido __SEUHEADER_H__

#define __SEUHEADER_H__   //Define __SEUHEADER_H__

//Código do cabeçalho aqui

#endif

O define assim é diferente de definir uma macro de substituição sintática, como:
#define if se

Pois não há substituição de texto. A idéia é só usar o #if e #ifndef para testar se a macro existe ou não, e alterar a compilação de acordo. Isso chama-se compilação condicional.

Criado 16 de setembro de 2010
Ultima resposta 16 de set. de 2010
Respostas 4
Participantes 4