Duvida macros C

1. Duvida macros C

Mauricio Souza Klein
Hebang

(usa Arch Linux)

Enviado em 02/04/2011 - 02:58h

Olá pessoal!

Estou tendo problemas com o uso de macros em C.

Eu quero fazer um include condicional na hora de compilar o código.
Tipo: se na linha do GCC tiver a macro -DOP1, eu dou include no "op1.h", se tiver -DOP2 no "op2.h", se não tiver nenhuma dá include no "no_op.h".

O que fiz foi o seguinte:
#ifdef OP1
#include "op1.h"
#elif OP2
#include "op2.h"
#else
#include "no_op.h"
#endif

O fato eh que "op1.h", "op2.h" e "no_op.h" possuem o mesmo método, chamado "teste" por exemplo.

Minha idéia e rodar o método "teste" do arquivo especifico que dou include.

Porém, quando compilo o código, o gcc acusa que "teste" não foi definida, como se nenhum dos três arquivo tivesse sido importado.

Alguém tem alguma idéia?

Haveria uma forma de fazer esse include condicional em tempo de execucão? Tipo, dependendo do valor de um parametro de entrada do programa, ele da include em um determinado arquivo e não nos outros?

Muito obrigado pela atencão de todos!


  


2. Re: Duvida macros C

Mauricio Souza Klein
Hebang

(usa Arch Linux)

Enviado em 04/04/2011 - 00:37h

Pessoal, consegui fazer com que os métodos fossem encontrados.

Porém, agora surgiu outro problema:

Nos arquivos que uso no include condicional, ambos possuem as mesmas variáveis e métodos, porém, óbviamente, em arquivos diferentes. Porém, preciso gerar o ".o" de ambos para poder criar o executável, e no include condicional, o compilador alarma que há dupla declaração de variáveis/métodos, mesmo dando include em apenas um arquivo, visto que as duas cláusulas não podem ser verdadeiras ao mesmo tempo.

Alguém sabe como resolvo isso?

Obrigado!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts