C言語 ビットフラグ操作関数
ビットフラグは嫌いだが、操作関数があれば少しは使いやすくなるのだろうか
C言語 シーケンス図 自動生成
[背景]
C言語のソースからシーケンス図を自動作成するツールが
見当たらなかったので作成した。plantUML用入力ファイルを出力する。
できたファイルをplantUMLで読み込むことでシーケンス図が見れる。
[動作環境]
Windows10で動確済み。(どのWindowsでも多分大丈夫)
解析するソースの対象プラットフォームは制限なし。
[入手方法]
・上記github内のreleaseからexeダウンロード
または
・ソースからコンパイル(debugビルドでないと落ちる)
[使い方]
・githubのreadMe.md参照
・plantUMLでシーケンス図の下部が切れてしまう場合、
PLANTUML_LIMIT_SIZEに16000等を設定。
[注意点]
・ソースは適切にモジュール分割されていること
(公開関数プロトタイプ宣言がヘッダにある)
・汎用的なソースフォーマットに対応していない
ので、ソースによって落ちる可能性大。
・ろくにテストしていないので出力結果は参考程度に思って。
・出力されるシーケンス図はif elseやswitch caseを考慮していない。
・シーケンス図に出てくる関数は各モジュールの公開関数のみ。
C言語 ファイル検索 再帰 ライブラリ
簡単に取り込めるファイル検索ライブラリ。(Windows用)
(指定フォルダ配下の、指定拡張子の全フルパスを取得する)
エラー処理は未実装。とりあえず動く。
使用者はlist.h, findFile.h内のインターフェースのみ把握しておけば使える。
まずはtest_findFile.cを見て概略をつかむのがおすすめ。
--------------------------------------------------------------------------------------------------------
list.h, list.c, findFile.h, findFile.cをプロジェクトに取り込んで、
findFile.hにあるインターフェースでファイルリスト取得。
結果はlist型で返ってくる。listはlist.hにあるインターフェースで扱う。
listはクラスモジュールなのでインスタンス化して使用する。
listモジュールとfindFileモジュールの詳細な使用方法は、test_list.c,
test_findFile.cを参照。
c言語 モジュール分割
cのプログラムはファイルを分けてモジュール分割可能。
ヘッダーファイルは設計図で、Cファイルは実装だ。
ヘッダーファイルには他モジュールが知る必要がことだけを書く。
公開関数のプロトタイプと、それの戻り値、引数で関係してくる
マクロ、列挙体、構造体。
ヘッダーファイルを読めば、プログラムの概略は把握しやすい。
なので、ヘッダーファイルはコメント多く丁寧に記述すること。
ファイルを一構成要素とした、モジュール構成図、シーケンス図が
設計書に記述される内容だ。
シーケンス図内では各モジュールの公開関数だけでなく、
各モジュール内の主要な非公開関数も記述するとベター。
ここまでに出てきた、モジュール構成図、シーケンス図(これは
ストーリー毎に存在)、ヘッダーファイルを見れば、プログラムの
全てを知らなくても、概要レベルで一度全体を把握できる。
(もちろん、関数で実装している機能の詳細は別途必要だけれども)
そんなこんなでモジュール分割することによる利点をまるで把握
できていなかったのでメモ書き。
追記:
そもそもある程度の大きさのプログラムを作るときは、はじめに
どのようなモジュールを作ってとか考えて、データ構造と関数を
割り振っていくんだろう。