1

includeプリプロセッサの機能を実装するための C プログラムを作成したいと考えています。

例:

header.h には、次のコードがあります。

char *test (void);

そして、program.c で:

int x;
#include "header.h"
int
main (void)
{
    puts (test ());
}

入力はprogram.cです。

出力は次のようになります。

int x;
char *test (void);
int
main (void)
{
    puts (test ());
}

これどうやってするの?

4

3 に答える 3

0

gcc -E "your source files"を実行してから、 "#"を含む行をフィルタリングすると、左側が必要になり、マクロが実際の形式に置き換えられます。

例えば:

gcc -E hello.c|sed '/# .,$/d' > a.c

acは必要なファイルです。

于 2012-06-11T06:53:23.367 に答える
0

gcc を使用する場合
gcc -E -P program.c

または
cpp -P program.c

Visual c
cl /EP program.cを使用する場合

于 2012-06-11T11:50:03.690 に答える
0

入力ファイルを 1 行ずつ読み取る必要があります。行が #include で始まっているかどうかを確認します (オプションで先頭の空白を使用)。そうでない場合は、読んだ行を印刷します。その場合は、代わりに指定されたファイルを開き、同じアルゴリズムを実行します (セカンダリ #include を処理するため)。

于 2012-06-11T04:59:13.823 に答える