0

目的: ヘッダー ファイルのリスト (約 50 個) があり、各ヘッダー ファイルには定数要素を持つ配列がほとんどありません。配列の要素を数えるプログラムを書く必要があります。そして、他の形式の出力を作成します (ハードウェア グループによって使用されます)。

私の解決策: 50 個の奇妙なファイルをすべて含めて、アプリケーションを作成しました。次に、配列のすべての要素を指定された形式にダンプしました。

私の環境: Visual Studio V6、Windows XP

私の問題: ヘッダー ファイルの新しいセットが存在するたびに、VC++ プロジェクトの設定を新しいヘッダー ファイルのセットを指すように変更してから再構築しています。

私の質問:

少し正気ではありませんが、

  • コマンドライン引数などからヘッダーに言及する方法はありますか?
  • 毎回ソースを再コンパイルするのを避けたいだけです...
4

3 に答える 3

2

標準 C および C++ では、次の場所でマクロを使用できます。

#include SOME_MACRO_HERE

展開された値は、ディレクティブSOME_MACRO_HEREに対して正しく見える必要があります。#include

したがって、原則として、次の MSVC に相当するものを使用できます。

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

または:

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

これは、最初の箇条書きの質問に対する答えを提供しているようです。

再コンパイルを避けることができるとは確信していませんが、(おそらく) 編集を避けることはできます。

于 2009-10-16T06:11:14.027 に答える
1

ヘッダーはコンパイル時に含まれるため、実行時にヘッダーを変更/追加する手段はありません。

ヘッダーを解析して配列項目の数をカウントする短くて単純な Perl スクリプトを作成してみませんか?

于 2009-10-16T06:11:32.683 に答える
0

実際、私はうまくいく解決策にたどり着きました。

  • ステップ 1: ヘッダー ファイル名は事前定義されます
  • ステップ 2: 異なるパラメーター値を持つヘッダー (セット) は、異なるフォルダーに配置されます
  • ステップ 3: コンパイル中に、適切なヘッダーを含むパスを指定します。

解決策は私が望んでいたものではありませんが、それでも、私が理解できることが最善でした.

于 2009-10-26T04:47:26.677 に答える