EnzoFerber
(usa FreeBSD)
Enviado em 25/02/2015 - 17:08h
Sam L. escreveu:
É que tenho uma função com 5 código diferentes. Como não é possível eu usar os 5 ao mesmo tempo, fica difícil criar uma solução. Então, divido os 5 códigos com macros, tipo, USE_CODIGO4, daí quando eu quero usar um dos códigos eu apenas passo a definição do código para o compilador. Mas você pergunta por que não criar uma função para cada código? É muito simples, a função sem os 5 códigos, tem 400 linhas e manter 5 funções de cada código seria um desastre e haveria grande risco de fu?er com tudo.
Por isso, queria apenas imprimir algumas informações sobre o código mas só em tempo de compilação, pois em execução ficaria muitas informações no terminal e é importante que eu economize espaço na saída porque este programa gerará saídas para outros programas, e poderia dificultar minha vida ao fazer o parsing das informações.
Entendi.
Quanto à saídas para parsing, você pode utilizar 'stderr' para imprimir o que você quiser, e na hora de rodar o programa você utiliza o redirecionamento do shell. Isso evitaria as diretivas do pré. Não sei se isso ajudaria, já que parece que você usa defines para alternar entre códigos e pode-se alterar defines pela linha de comando de GCC...
...
fprintf(stderr, "minha mensagem");
...
$ ./meu_prog 2>/dev/null
$
Isso vai suprimir toda e qualquer mensagem que você imprimir na stderr.
Enzo Ferber
[]'s