ソースプログラムファイルの変数検索

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
kiki

ソースプログラムファイルの変数検索

#1

投稿記事 by kiki » 16年前

Cで、ある別のソースプログラムファイルの中で定義されている変数のその型と出現する行番号をすべて出力するということは可能でしょうか?
main関数の前には、他のユーザー関数は置かない。
外部変数は無視で、同じ変数名はないものとして、変数名は英小文字と数字のみ。
char,int,long,float,doubleの五つのみの検索。

どのようにその変数かどうかを判断すればよいのか、助言またはソースを書いて頂けないでしょうか?
よろしくお願いします。

zwi

Re:ソースプログラムファイルの変数検索

#2

投稿記事 by zwi » 16年前

単に検索だけならGrepソフトで正規表現を使うほうが話が早いです。
ある程度構文解析する場合は、ここに書き出せる量のソースコードではなくなる気がします。

気になる事。
・構造体に含まれる場合は?
・定義だけで参照側は表示しなくて良いのか?

kiki

Re:ソースプログラムファイルの変数検索

#3

投稿記事 by kiki » 16年前

正規表現を使ったことがないので、よく分かりません。

> ・構造体に含まれる場合は?
構造体は無視して、やりたいです。

> ・定義だけで参照側は表示しなくて良いのか?
例えば、このようなソースプログラムファイルがあったとすると、このソースプログラムファイルを全て表示してから、

1:#include <stidio.h>
2:
3:int main()
4:{
5: int d=0;
6:
7: printf("%d",d);
8: return(0);
9:}
10:

[定義されている変数]
d(int)・・・5,7

のように表示したいと思っています。

> ある程度構文解析する場合は、ここに書き出せる量のソースコードではなくなる気がします。
やはりそうですよね・・・
正規表現、調べてみたいと思います。

zwi

Re:ソースプログラムファイルの変数検索

#4

投稿記事 by zwi » 16年前

ご要望に沿うものを作ると簡易な構文解析が必要ですね。
ある程度正規表現を使えたほうが楽そうなので、私ならPerlかVBScriptで作ると思います。
Cだけで作るとなると、ちょっと面倒ですね。

いや、strtok()だけでもある程度できるかな?
ちと考えてみます。

zwi

Re:ソースプログラムファイルの変数検索

#5

投稿記事 by zwi » 16年前

うーん。Cだけだと、やはり辛いですね。

kiki

Re:ソースプログラムファイルの変数検索

#6

投稿記事 by kiki » 16年前

zwiさん、ありがとうございます。

なんとか自分で頑張ってみたいと思います。

でんすけ

Now Loading

#7

投稿記事 by でんすけ » 15年前

今、3DゲームをDirectXで作っているのですが、
「Now Loading」のプログラムってどのようになっているのでしょうか。

アドバイスお願いします。

softya

Re:Now Loading

#8

投稿記事 by softya » 15年前

>「Now Loading」のプログラムってどのようになっているのでしょうか。

1.「Now Loading」の画像を表示するだけ。
先に「Now Loading」の画像だけを読んで表示する。その後他のデータを読む。

2.「Now Loading」の画像をアニメーションさせつつ読み込む。
先に「Now Loading」のアニメ画像を全て読み込む。ファイルを非同期読み込みで読みながら「Now Loading」画像のアニメーションを制御する。

3.「Now Loading」の画像をアニメーションさせつつ読み込む2。
先に「Now Loading」のアニメ画像を全て読み込む。ファイルの読み込みは全てサブスレッド側で処理。
スレッドで読んでいる間はメインループで「Now Loading」画像のアニメーションを制御する。

のどれかですね。
1が一番簡単で、2は面倒だけどマルチスレッドの知識が不要。ただし、ファイルの非同期読み込みを知っている必要があるのと結構制御が面倒。3.はマルチスレッドを理解していないと作れないけど出来上がるコードはシンプル。拡張性が高い。

でんすけ

Re:Now Loading

#9

投稿記事 by でんすけ » 15年前

ありがとうございました

閉鎖

“C言語何でも質問掲示板” へ戻る