ここでは,1つのソースファイルをどの様に構成するかを述べる。
ソースファイルの記述例を以下に示す。
ソースファイルの履歴のコメント,ソースファイルの頭書きなどは以下の順番で記述する。
■ ファイルの記述例
// @(h) Comment.cpp ver 2.0 ( '07.09.13 今井 浩司 )
// @(h) Comment.cpp ver 1.0 ( '07.09.01 今井 浩司 )
// @(s)
// ファイルI/O関数群
// 本ファイルはファイル入出力に関する関数群を
// 集めたものである。
//
#define HC_MAX_PATH 128 // フルパス 最大文字列数
#define HC_MAX_EXT 3 // 拡張子 最大文字列数
#define HC_MAX_FILENAME 128 // ファイル名 最大文字列数
#define HC_MAX_DATE 9 // 日付 "YY/MM/DD"#define NUMBER_OF(a) \
( sizeof(a) / sizeof(a[0]) ) // 配列の要素数を得る
typedef struct Memory { // メモリ上のバッファ
char *s; // 文字列
struct Memory *next; // リスト構造ポインタ
} MEMORY;
union u_tag { // タグ共用体
int ival; // 整数
float fval; // 実数
char *sval; // 文字列
} u;
enum Boolean { // ブール型定数
False, // 偽
True // 真
};
class Box { // 直方体
private:
int height; // 縦
int width; // 横
int depth; // 高さ
public:
Box(int,int,int); // コンストラクタ
int volume(void); // 容積
int surface(void); // 表面積
};
■ 関数定義部の記述例
//
// 機能 : 文字位置の取得
//
// 返り値 : 文字位置[byte](検索されなかった場合は 0を返す)
//
// 機能説明 : 文字列の中から,指定文字列を検索し位置を返す。
//
// 備考 : pStrInStr( "a#c#d#eeee", "#" ) -> 2
// pStrInStr( "a#c#d##eeee", "##" ) -> 6
// pStrInStr( "abcdeabcde", "AA" ) -> 0
//
int pStrInStr(const char *tarstr, // 検索される対象の文字列
const char *srcstr) // 検索する指定部分文字列
{
int nsrc = strlen(srcstr);
int ntar = strlen(tarstr);
int i;
/// 文字列の長さ分ループする
for (i = 0; i < ntar; i++)
//// ヒットした場合カウントアップし,それを返り値とする
if (strncmp(tarstr+i, srcstr, nsrc) == 0)
return i+1;
return 0;
}