C (Linux OS) でプログラミングしています。ファイルを読み取り、そのファイル内の関数をチェックして、対応する関数名を出力する必要があります。これまでのところ、「{」の深度計算を使用して関数を識別するようにプログラムしました。__FUNCTION__
現在のファイルの関数名を出力するためにプリプロセッサ ディレクティブが使用されていることは知っています。同様に、読み取ったファイルの関数名を見つけるためのプリプロセッサ ディレクティブはありますか? 特定のツールについては心配していません。プログラムしてもらいたい。よろしくお願いします。前もって感謝します。
このコードを実装しようとしました。この関数は、行 ('{' の前に来る) を引数として取ります。
void ffname(char line[100])
{
int i,j,m,n,f=0;
char dt[10],fname[28];
char s[5][10]={"int","void","struct","char","float"};
dt = strtok(line," ");
for(i=0;i<5;i++)
{
m=strcmp(dt,s[i]);
if(m==0)
{
f=1;
n=strlen(dt);
}
}
if(f)
{
for(i=n+2,j=0;i<strlen(line);i++,j++)
{
if(line[i] == '*')
i++;
while(line[i] != '(')
{
fname[j]=line[i];
}
}
}
}
このコードが正しいかどうかわかりません。このまま使おうかな。関数名を見つけるオプションはありますか?