C言語ソースファイルの記述例を以下に示す。
ソースファイルの履歴のコメント,ソースファイルの頭書きなどは以下の順番で記述する。
基本的には、C++のコメントの"//"が"/* 〜 */"に変更されたのみである。
ただし、関数の処理説明の書き方が、"///"から"/*c 〜
*/"、"////"から"/*t 〜 */"に変更される。
関数定義書の中の段下げは,"t"の数により深くすることができる。
■ ファイルの記述例
/* @(h) Comment.c ver 2.0 ( '07.09.13 今井 浩司 ) */
/* @(h) Comment.c 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 /* 真 */
};
■ 関数定義部の記述例
/*
* 機能 : 文字位置の取得
*
* 返り値 : 文字位置[byte](検索されなかった場合は 0を返す)
*
* 機能説明 : 文字列の中から,指定文字列を検索し位置を返す。
*
* 備考 : pStrInStr( "a#c#d#eeee", "#" ) -> 2
* pStrInStr( "a#c#d##eeee", "##" ) -> 6
* pStrInStr( "abcdeabcde", "AA" ) -> 0
*/
int pStrInStr(tarstr, srcstr)
const char *tarstr; /* 検索される対象の文字列 */
const char *srcstr; /* 検索する指定部分文字列 */
{
int nsrc = strlen(srcstr);
int ntar = strlen(tarstr);
int i;
/*c 文字列の長さ分ループする */
for (i = 0; i < ntar; i++)
{
/*t ヒットした場合カウントアップし,それを返り値とする */
if (strncmp(tarstr+i, srcstr, nsrc) == 0)
return (i+1);
/*tt 更にインデントがある場合 */
}
return (0);
}