
No.4ベストアンサー
- 回答日時:
まず、仕様書がを読み、機能と対応すると思われるソースコードを読みます。
よくできたシステム(のソース)ならば大体対応が取れるので、これで大雑把にわかります。ここで重要なのは、このソースコードはどういう機能を実現しているかをざっくり理解することです。
仕様書がなければ、人に聞くか、取説でもいいからドキュメントを探します。もちろん仕様書がアップデートされていないことは良くあるから、あまり悩むのは無駄です。
次に、データ構造を捉えます。
C言語の場合ですが、データ構造を構成するメンバ変数を元に検索すれば、ソースコード間の因果関係が明らかになります。
ポイントはどのメンバ変数は、いつどこでどう書かれるのか、読まれるのかを明らかにすることです。
ここまでできれば、読みやすそうなソースコードを手始めに解析を始めます。
読みやすいとは、ソースコードのステップ数が少なく、他のソースコードと依存がなく、機能がはっきりわかるものを選びます。
解析のポイントは、ソースコードを書き換えて見ることです。自分の読みやすい形に書き換えて、メモを入れてみたりすればよいです。リファクタリングかな?
以上いかがでしょうか?
No.3
- 回答日時:
私は、上下から読んでいきます。
mainからも読みますが、関数が何をやっているのかを読んでおきます。
で、関数名を参照しながら、「ここは....をして、その次の関数で...をして」と、全体を見ながらのボトムアップ的な読み方をしています。
完全に下から読むのではなく、上から一度読んだだけで理解しようともせず、下から読んだ知識を元に上から読んでいくというイメージでしょうか。
関数呼び出しのTree構造を調べるツールは必須です。
No.2
- 回答日時:
ソースコードをhtml化するツールがあります。
ディスクスペースがかなり必要となりますが、知らない関数に出会ったときにすぐに辿れるのでとても便利です。
参考URL:http://uguisu.skr.jp/Windows/gtags.html
No.1
- 回答日時:
まず関数レベルでツリー構造を確認すれば簡単ではないでしょうか。
例えばこんなツールです。
http://www.vector.co.jp/soft/dos/prog/se174432.h …
参考URL:http://www.vector.co.jp/soft/dos/prog/se174432.h …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
c言語
-
C言語の関数のextern宣言
-
【C言語】全角文字の配列を、全...
-
C#でログファイルにファイルパ...
-
int16_t の _t は何?
-
DLLファイルの逆コンパイラにつ...
-
C#でTreeViewのCheckBoxのサイ...
-
gccを行ってもexeファイルが生...
-
3×3のラテン方陣をつくるプログ...
-
大量のデータを読み込んで表示...
-
visual studio 2022でのC#プロ...
-
C言語について。
-
終端記号、非終端記号とは
-
C言語関数違いについて。
-
C言語 関数、変数の宣言について
-
C言語について(初心者)
-
あってる
-
C# で 数式文字列処理を処理す...
-
C言語のことです。写真(見にく...
-
逆コンパイルと逆アセンブルの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAをDLL化する方法を教えてく...
-
QGISでの円(圏域)描画方法に...
-
パケットキャプチャツール(Wir...
-
pdfの読み込み
-
Windows serverでマルチキャス...
-
ツールチップ
-
Accessの代わりのノンプログラ...
-
Visual Basicで画像を加工する...
-
VB6の開発支援ツール?
-
diffツールでコメントを比較対...
-
SEOではどれが一番効果的ですか...
-
asp(vbs)のソースを整えたい
-
VB5.0からVB.NETへの移行
-
安価なソースコードの構造解析...
-
ソースのボトルネックがどこか...
-
虫眼鏡ツールのような機能をhtm...
-
Perlソース(拡張子.cgi)のス...
-
Peggy Pad
-
インストーラーの作成
-
イベントログファイル(.evt)の...
おすすめ情報