Pergunta

Objetivo:Eu tenho uma lista de arquivos de cabeçalho (cerca de 50 deles) e cada arquivo de cabeçalho tem poucas matrizes com elementos constantes. Preciso escrever um programa para contar os elementos da matriz. E crie outra forma de saída (que será usada pelo grupo de hardware).

Minha solução:Incluí todos os 50 arquivos ímpares e escrevi um aplicativo. E então eu despejei todos os elementos da matriz no formato especificado.

Meu ambiente:Visual Studio V6, Windows XP

Meu problema:Cada vez que há um novo conjunto de arquivos de cabeçalho, agora estou alterando as configurações do projeto VC ++ para apontar para o novo conjunto de arquivos de cabeçalho e, em seguida, reconstruir.

Minha pergunta:

Um pouco em sinceridade, porém, porém,

  • Existe alguma maneira de mencionar o cabeçalho de alguns argumentos da linha de comando ou algo assim?
  • Eu só quero evitar recilomar a fonte toda vez ...
Foi útil?

Solução

O padrão C e C ++ permitem que você use uma macro em:

#include SOME_MACRO_HERE

O valor expandido de SOME_MACRO_HERE deve parecer correto para um #include diretivo.

Portanto, em princípio, você pode usar o equivalente ao MSVC de:

cc -DSOME_MACRO_HERE='<actualheader.h>' sourcefile.c

Ou:

cc -DSOME_MACRO_HERE='"actualheader.h"' sourcefile.c

Isso parece fornecer uma resposta para sua primeira pergunta.

Não estou convencido de que você possa evitar a recompilação - você pode (talvez) evitar a edição.

Outras dicas

Os cabeçalhos estão incluídos no horário de compilação, para que não haja meios para alterar/adicionar cabeçalhos em tempo de execução.

Por que você não escreve um script perl curto e simples que analisa os cabeçalhos e contam o número de itens de matriz?

Na verdade, cheguei a uma solução que funciona.

  • Etapa 1: os nomes de arquivos do cabeçalho seriam predefinidos
  • Etapa 2: cabeçalhos (definidos) com diferentes valores de parâmetros serão colocados em diferentes pastas
  • Etapa 3: Enquanto compilar, aponte para o caminho com os cabeçalhos apropriados

A solução não é o que eu queria, mas ainda assim, era melhor eu conseguir descobrir.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top