Microsoft Word - CodingStyle.doc



Similar documents
2.4 箇 条 書 のスタイルを 変 更 する 右 クリックして 箇 条 書 と 番 号 付 け を 選 択 する. あとは 少 し 遊 べば, このようなことをやりたい 人 は 理 解 できると 思 います 3 いろいろな 入 力 ワープロを 使 う 上 で 肝 心 な 点 は, 空 白 調 整

富士山チェックリスト

(1)1オールゼロ 記 録 ケース 厚 生 年 金 期 間 A B 及 びCに 係 る 旧 厚 生 年 金 保 険 法 の 老 齢 年 金 ( 以 下 旧 厚 老 という )の 受 給 者 に 時 効 特 例 法 施 行 後 厚 生 年 金 期 間 Dが 判 明 した Bは 事 業 所 記 号 が

戦略担当者のための

2016 年 度 情 報 リテラシー 三 科 目 合 計 の 算 出 関 数 を 用 いて 各 教 科 の 平 均 点 と 最 高 点 を 求 めることにする この2つの 計 算 は [ホーム]タブのコマ ンドにも 用 意 されているが 今 回 は 関 数 として 作 成 する まず 表 に 三 科

01_07_01 データのインポート_エクスポート_1

一 括 登 録 方 法 一 括 登 録 をするには 予 め 専 用 の CSV ファイルを 作 成 する 必 要 があります 普 段 エクセルファイルで 管 理 をされている 方 は, 以 下 の 3 列 のみのデータとなるようにデータを 加 工 して CSV ファイルとして 保 存 して 下 さ

2 役 員 の 報 酬 等 の 支 給 状 況 役 名 法 人 の 長 理 事 理 事 ( 非 常 勤 ) 平 成 25 年 度 年 間 報 酬 等 の 総 額 就 任 退 任 の 状 況 報 酬 ( 給 与 ) 賞 与 その 他 ( 内 容 ) 就 任 退 任 16,936 10,654 4,36

Ver 改 訂 日 付 改 訂 内 容 1

返還同意書作成支援 操作説明書

(3) 小 単 元 の 指 導 と 評 価 の 計 画 小 単 元 第 11 章 税 のあらまし の 指 導 と 評 価 の 計 画 ( 四 次 確 定 申 告 制 度 抜 粋 ) 関 心 意 欲 態 度 思 考 判 断 技 能 表 現 知 識 理 解 小 単 元 の 評 価 規 準 税 に 関 す

年齢別人数計算ツールマニュアル

PowerPoint プレゼンテーション

< 目 次 > 8. 雇 用 保 険 高 年 齢 雇 用 継 続 給 付 27 ( 育 児 休 業 給 付 介 護 休 業 給 付 ) 8.1 高 年 齢 雇 用 継 続 給 付 画 面 のマイナンバー 設 定 高 年 齢 雇 用 継 続 給 付 の 電 子 申 請 高

< F2D A C5817A C495B6817A>

平成21年9月29日

(現行版)工事成績書と評定表をあわせた_docx

( 別 途 調 査 様 式 1) 減 損 損 失 を 認 識 するに 至 った 経 緯 等 1 列 2 列 3 列 4 列 5 列 6 列 7 列 8 列 9 列 10 列 11 列 12 列 13 列 14 列 15 列 16 列 17 列 18 列 19 列 20 列 21 列 22 列 固 定

( 別 紙 ) 以 下 法 とあるのは 改 正 法 第 5 条 の 規 定 による 改 正 後 の 健 康 保 険 法 を 指 す ( 施 行 期 日 は 平 成 28 年 4 月 1 日 ) 1. 標 準 報 酬 月 額 の 等 級 区 分 の 追 加 について 問 1 法 改 正 により 追 加

Microsoft PowerPoint - 総合型DB資料_県版基金説明用.pptx

新 生産管理システム ご提案書 2002年10月15日 ムラテック情報システム株式会社

<4D F736F F D20819C486F70658F6F93588ED297708AC7979D89E696CA837D836A B E A2E646F63>

t検定

R4財務対応障害一覧

Prog1_14th

(Microsoft Word - Excel\211\236\227p2\217\315.docx)

計算式の取り扱い

Microsoft Word - ML_ListManager_10j.doc


Microsoft Word - 目次.doc

2. ど の 様 な 経 緯 で 発 覚 し た の か ま た 遡 っ た の を 昨 年 4 月 ま で と し た の は 何 故 か 明 ら か に す る こ と 回 答 3 月 17 日 に 実 施 し た ダ イ ヤ 改 正 で 静 岡 車 両 区 の 構 内 運 転 が 静 岡 運

Microsoft Word - 第3章.doc

財政再計算結果_色変更.indd

1級 ワンポイント

< E8BE08F6D2082C682B DD2E786C7378>

Taro-1-14A記載例.jtd

養 老 保 険 の 減 額 払 済 保 険 への 変 更 1. 設 例 会 社 が 役 員 を 被 保 険 者 とし 死 亡 保 険 金 及 び 満 期 保 険 金 のいずれも 会 社 を 受 取 人 とする 養 老 保 険 に 加 入 してい る 場 合 を 解 説 します 資 金 繰 りの 都

Microsoft Word - 不動産賃貸業における事業的規模とは?

H28記入説明書(納付金・調整金)8

事務連絡

Taro-2220(修正).jtd

2 県 公 立 高 校 の 合 格 者 は このように 決 まる (1) 選 抜 の 仕 組 み 選 抜 の 資 料 選 抜 の 資 料 は 主 に 下 記 の3つがあり 全 高 校 で 使 用 する 共 通 の ものと 高 校 ごとに 決 めるものとがあります 1 学 力 検 査 ( 国 語 数

一 覧 表 ( 専 従 者 用 ) YES NOチャート( 専 従 月 額 単 価 用 ) (P.4)を 参 考 にしてください < 直 接 雇 用 者 > 一 覧 表 ( 専 従 者 用 )の 単 価 は 委 託 期 間 中 に 継 続 して 半 年 以 上 当 該 AMED 事 業

Microsoft Word - tb01.doc

目 次 1. 論 理 関 数 IF IF の 概 要 論 理 式 の 種 類 等 号 不 等 号 具 体 的 な 使 い 方 ネスト 複 数 の 条 件 を 記 述...

決 算 時 の 流 れ-1 1 年 間 の 仕 訳 入 力 が 終 了 したら 以 下 の 手 順 で 決 算 書 を 作 成 します Step1 精 算 表 を 印 刷 する 1.[F2 入 力 ]タブより 合 計 表 を 選 択 し 月 度 の 指 定 で 期 首 ~12ヶ 月 目 を 指 定

CSI情報管理システム

情報処理技能検定試験 表計算2級 手順書

目 次 1. 積 算 内 訳 書 に 関 する 留 意 事 項 1 ページ 2. 積 算 内 訳 書 のダウンロード 3 ページ 3. 積 算 内 訳 書 の 作 成 (Excel 2003の 場 合 ) 6 ページ 4. 積 算 内 訳 書 の 作 成 (Excel 2007の 場 合 ) 13

< 現 在 の 我 が 国 D&O 保 険 の 基 本 的 な 設 計 (イメージ)> < 一 般 的 な 補 償 の 範 囲 の 概 要 > 請 求 の 形 態 会 社 の 役 員 会 社 による 請 求 に 対 する 損 免 責 事 由 の 場 合 に 害 賠 償 請 求 は 補 償 されず(


縦 計 横 計 をSUM 関 数 で 一 度 に 計 算 する 縦 横 の 合 計 を 表 示 するセルが 計 算 対 象 となる セルと 隣 接 している 場 合 は 一 度 に 合 計 を 求 め ることができます 1 計 算 対 象 となるセル 範 囲 と 合 計 を 表 示 する セル 範

している 5. これに 対 して 親 会 社 の 持 分 変 動 による 差 額 を 資 本 剰 余 金 として 処 理 した 結 果 資 本 剰 余 金 残 高 が 負 の 値 となるような 場 合 の 取 扱 いの 明 確 化 を 求 めるコメントが 複 数 寄 せられた 6. コメントでは 親

< F2D E633368D86816A89EF8C768E9696B18EE688B5>

共 通 認 識 1 官 民 較 差 調 整 後 は 退 職 給 付 全 体 でみて 民 間 企 業 の 事 業 主 負 担 と 均 衡 する 水 準 で あれば 最 終 的 な 税 負 担 は 変 わらず 公 務 員 を 優 遇 するものとはならないものであ ること 2 民 間 の 実 態 を 考

KINGSOFT Office 2016 動 作 環 境 対 応 日 本 語 版 版 共 通 利 用 上 記 動 作 以 上 以 上 空 容 量 以 上 他 接 続 環 境 推 奨 必 要 2

目 次 1. 化 学 研 究 所 研 究 者 データベースについて 研 究 者 情 報 データベース 登 録 システムログイン 画 面 メニュー 画 面 パスワードの 変 更 公 開 時 の 表 示 / 非 表 示 の 設 定.

Microsoft Word 役員選挙規程.doc

った 場 合 など 監 事 の 任 務 懈 怠 の 場 合 は その 程 度 に 応 じて 業 績 勘 案 率 を 減 算 する (8) 役 員 の 法 人 に 対 する 特 段 の 貢 献 が 認 められる 場 合 は その 程 度 に 応 じて 業 績 勘 案 率 を 加 算 することができる

65 発 送 管 理 2 賦 課 期 日 情 報 66 発 送 管 理 3 賦 課 期 日 情 報 67 発 送 管 理 4 賦 課 期 日 情 報 68 発 送 管 理 5 賦 課 期 日 情 報 69 発 送 管 理 6 賦 課 期 日 情 報 70 発 送 管 理 7 賦 課 期 日 情 報

小 売 電 気 の 登 録 数 の 推 移 昨 年 8 月 の 前 登 録 申 請 の 受 付 開 始 以 降 小 売 電 気 の 登 録 申 請 は 着 実 に 増 加 しており これまでに310 件 を 登 録 (6 月 30 日 時 点 ) 本 年 4 月 の 全 面 自 由 化 以 降 申

Microsoft PowerPoint - 経営事項審査.ppt

第1章 簿記の一巡

これらを 踏 まえ 当 健 保 組 合 では 被 保 険 者 の QOL 向 上 および 医 療 費 適 正 化 に 向 け 生 活 習 慣 病 予 防 対 策 の 追 加 的 な 取 り 組 みを 開 始 した 平 成 23 年 度 は 対 象 疾 病 として 糖 尿 病 にフォーカスする ことと

Microsoft Word - Active.doc

目 次 1.はじめに 書 式 の 説 明 表 紙 スケジュール 組 入 れ 基 準 併 用 禁 止 薬 併 用 注 意 薬 同 種 同 効 薬 医 師 モニタリング..

注 雇 促 進 税 制 と 本 制 度 のどちらかを 利 する 可 能 性 があるが あらかじめどちらの 制 度 を 利 するか 判 断 できない という 場 合 雇 促 進 税 制 の 事 前 届 出 ( 雇 促 進 計 画 の 提 出 )をした 上 で 申 告 の 際 にどちらを 利 するかご

SXF 仕 様 実 装 規 約 版 ( 幾 何 検 定 編 ) 新 旧 対 照 表 2013/3/26 文 言 変 更 p.12(1. 基 本 事 項 ) (5)SXF 入 出 力 バージョン Ver.2 形 式 と Ver.3.0 形 式 および Ver.3.1 形 式 の 入 出 力 機 能 を

所 得 税 と 住 民 税 の 税 率 表 所 得 税 と 住 民 税 の 税 率 は 以 下 の 通 りです 退 職 所 得 の 場 合 も この 税 率 表 を 使 います 1. 平 成 19 年 1 月 1 日 以 降 ( 所 法 891) 課 税 所 得 所 得 税 率 控 除 額 ~195

Microsoft Word - 制度の概要_ED.docx

治 験 実 施 管 理 システム NMGCP 向 け Excel 形 式 プロトコール 作 成 手 順 書 V4.0.3 対 応 版 第 1 版 株 式 会 社 富 士 通 アドバンストエンジニアリング All Rights Reserved,Copyright 株 式 会 社 富 士 通 アドバン

<4D F736F F D20819C B78AFA95DB91538C7689E68DEC90AC289

スライド 1

<4D F736F F D AC90D1955D92E CC82CC895E DD8C D2816A2E646F63>

Microsoft PowerPoint - Econometrics pptx

(2) 支 状 況 保 育 所 ( 定 員 60 人 以 上 ) 支 状 況 は 次 とおりです 1 総 入 構 成 比 は 割 合 が88.1% 活 動 外 入 が2.1% 特 別 入 が9.8%でした 2 構 成 比 は 運 営 費 入 が80.1% 経 常 経 費 補 助 金 入 が17.8%

解 答 編 第 4 章 条 件 による 分 岐 2 演 習 問 題 4.2 整 数 値 を 入 力 すると その 整 数 が 偶 数 か 奇 数 かを 答 えるプログラムを 作 りなさい ただし 1 ) if else 文 を 用 いて 作 ること この 問 題 は 本 当 に 簡 単 です しかし

< E8BE08F6D2082C682B DD2E786C7378>

Microsoft Word - ☆f.doc

1

Microsoft Word - A04◆/P doc

スライド 1

編 5ヶ 月 6 総 論 7 抜 ピ ド ピ ド 速 永 久 繰 ロ セ 慣 容 易 結 共 通 決 々 5 照 づ 具 ご 紹 介 与 監 査 比 較 場 限 提 始 箇 提 進 ご 安 心 話 提 与 監 査 雑 把 与 締 役 緒 算 類 作 機 関 従 来 税 始 忘 生 物 繰 切 忘 葉

2 役 員 の 報 酬 等 の 支 給 状 況 平 成 27 年 度 年 間 報 酬 等 の 総 額 就 任 退 任 の 状 況 役 名 報 酬 ( 給 与 ) 賞 与 その 他 ( 内 容 ) 就 任 退 任 2,142 ( 地 域 手 当 ) 17,205 11,580 3,311 4 月 1

1. 表 から 値 を 抽 出 する 説 明 1.1. 表 から 値 を 抽 出 するための 関 数 について 説 明 します LOOKUP VLOOKUP HLOOKUP 関 数 は 検 索 値 に 対 応 する 値 を 検 索 値 を 含 む 一 覧 表 から 抽 出 し てくれる 関 数 です

2 / 13 ページ 第 7 講 ビジネス 表 計 算 の 実 用 テクニック 7-1 ファイルを 開 く 第 6 講 で 保 存 したファイル internet.xlsx を 開 きましょう 数 式 が 表 示 されている 場 合 は 非 表 示 にしておきましょう 7-2 罫 線 A3:C4 A

目 次 1 報 酬 給 与 額 事 例 1 報 酬 給 与 額 に 含 める 賞 与 の 金 額 が 誤 っていた 事 例 1 事 例 2 役 員 退 職 金 ( 役 員 退 職 慰 労 金 )を 報 酬 給 与 額 として 申 告 して いなかった 事 例 1 事 例 3 持 株 奨 励 金 を

中 間 利 払 日 とし 預 入 日 または 前 回 の 中 間 利 払 日 からその 中 間 利 払 日 の 前 日 までの 日 数 および 通 帳 または 証 書 記 載 の 中 間 利 払 利 率 によって 計 算 した 中 間 利 払 額 ( 以 下 中 間 払 利 息 といいます )を 利

WEB版「新・相続対策マスター」(ご利用の手引き)

入 札 参 加 資 格 申 請 システム 操 作 マニュアル 入 札 参 加 資 格 の 資 格 有 効 ( 変 更 ) 日 を 迎 えると 追 加 届 の 登 録 ができるようになります ( 入 札 参 加 資 格 申 請 の 定 時 受 付 では いずれかの 申 請 先 団 体 から 入 札 参

_責)Wordトレ2-1章_斉

6 システムを 入 れているパソコンを 入 れ 替 えたいが どうしたらいいのか 元 のパソコンから 新 しいパソコンに 昨 年 度 入 力 データを 移 行 します 手 順 は 次 のとおりです 1 元 のパソコンでシステムを 起 動 して メニュー 画 面 から バックアップ リカバリ を 選

ただし 区 分 は 同 一 の 譲 渡 所 得 であっても 不 動 産 の 譲 渡 損 益 は 不 動 産 の 譲 渡 損 益 どうしで また 株 式 等 の 譲 渡 損 益 は 株 式 等 の 譲 渡 損 益 どうしで それぞれ 通 算 を 行 うことになっています( 次 項 の 損 益 通 算

目 次 1. Web メールのご 利 用 について Web メール 画 面 のフロー 図 Web メールへのアクセス ログイン 画 面 ログイン 後 (メール 一 覧 画 面 ) 画 面 共 通 項 目

各 種 調 査 書 様 式 の 操 作 Q12 調 査 書 様 式 をダウンロードしようとしたが エラー 表 示 が 出 て 取 得 出 来 ません 調 査 書 様 式 の 公 開 直 後 は アクセスが 集 中 し ダウンロードの 際 に エラーが 出 ることがあります 時 間 をおいて 再 度

鳥 取 国 民 年 金 事 案 177 第 1 委 員 会 の 結 論 申 立 人 の 昭 和 37 年 6 月 から 38 年 3 月 までの 国 民 年 金 保 険 料 については 納 付 していたものと 認 められることから 納 付 記 録 を 訂 正 することが 必 要 である 第 2 申

事務連絡

公表資料02【案1】0806印刷用<厚生年金・国民年金の平成26年度収支決算の概要>

158 高 校 講 座 習 モ 現 ラ 習 モ 距 離 置 示 終 向 据 示 唆 与 取 ょ 第 7576 回 第 :

鹿 児 島 厚 生 年 金 事 案 600 第 1 委 員 会 の 結 論 申 立 人 は 申 立 期 間 に 係 る 脱 退 手 当 金 を 受 給 していないものと 認 められるこ とから 申 立 期 間 に 係 る 脱 退 手 当 金 の 支 給 の 記 録 を 訂 正 することが 必 要 で

Transcription:

コーディングスタイルについて コーディングスタイルとはソースコードのレイアウトのことです 空 白 やカッコをどこにいくつ 入 れるか どこで 改 行 するか コメントはどこにつけるか といったこともろもろを 全 部 まとめてコーディングスタイルと 言 います Cはフリーフォーマットな 言 語 です Web で The International Obfuscated C Code Contest( 難 解 C コード 国 際 コンテスト)の 入 賞 コードを 見 つけて 参 照 してみてください Cのコーディングスタイルにはこれほどの 自 由 度 があります しかしこのようにわかりにくいコードを 書 いてバグが 出 たときに 果 たしてデバッグは 可 能 でしょうか( 入 賞 者 たちはきっとデバッグに 非 常 な 苦 労 をしたでしょう) また ちょ っとした 機 能 を 追 加 するとき ためらいなく 手 をつける 気 になれますか? 仕 事 では わかりやすく 保 守 が 容 易 で 一 貫 しているコーディングスタイルが 求 めら れます 実 際 にはプロジェクトごとにコーディングスタイルを 決 めることも 多 いようです 以 下 にあるのはコーディングスタイルガイドの 一 例 です 研 修 ではここに 書 いてあるコ ーディングスタイルに 従 うものとします 最 初 は 面 倒 かもしれませんが これもマナーの 1つと 考 えてください 1/13

1. インデントとタブ インデント( 行 ごとの 字 下 げ 段 差 )は4 桁 とします if (a > 1) { x = a + 1; for (i = 0; i < n; i++) { array[i] = func(x, i); if (array[i] < 0) { fprintf(stderr, ERROR: Invalid value %d\n, else { foo(array[i]); : インデントにはタブが 利 用 できますが タブ 幅 の 設 定 は 人 によって 異 なり 4 桁 に 設 定 している 人 と8 桁 の 人 とがいます タブ 幅 設 定 が 異 なると 自 分 のエディタでは 問 題 なく 表 示 されても 他 の 人 のエディタではガタガタに 表 示 されてしまいます これを 防 ぐため タブキーを 押 したときには 空 白 文 字 が 入 力 されるようにエディタを 設 定 しておくことをお 薦 めします (サクラエディタでの 設 定 例 ) 設 定 タイプ 別 設 定 スクリーン タグ SPACE の 挿 入 にチェック 2. 関 数 宣 言 関 数 宣 言 は int foo( char *name, /* 名 前 */ int age) /* 年 齢 */ のように 書 きます あるいは 2/13

/* * 関 数 名 : foo * 機 能 : 名 前 と 年 齢 から その 人 の 寿 命 を 求 める * 引 数 : char *name : 名 前 * int age : 年 齢 * 戻 り 値 : (int) 寿 命 */ int foo(char *name, int age) と 関 数 へのコメントとあわせて 書 いても 良 いです 3. 変 数 宣 言 char *str; /* 説 明 */ int x; /* 説 明 */ のように 書 きます 型 が 同 じなら (1) char *from; /* 説 明 */ char *to; /* 説 明 */ のようにも 書 けるし カンマで 区 切 って (2) char *from, *to; /* 説 明 */ のようにも 書 けます しかし 追 加 や 削 除 のしやすさ およびコメントとの 対 応 を 重 視 して (1)を 採 用 します 変 数 宣 言 に 対 するコメントは できるだけつけるようにします コメントが 難 しい つま り 変 数 の 役 割 をひとことで 表 すことができないならば それは 設 計 がまずいといえます 変 数 の 役 割 を 明 確 にしましょう 一 つの 変 数 を 異 なる 目 的 で 使 うことはしないこと わずかな 記 憶 領 域 をけちるより わか りやすさを 優 先 します 上 の 例 では char と *from がとても 離 れているように 感 じます もうすこし 近 くてもよい 3/13

かもしれません しかし 構 造 体 変 数 を 使 うようになると このくらいがちょうどよく 思 え てきます char struct stat *buf; st; 要 は buf と st を 揃 えたいのです 次 のようだと ぱっと 見 てわかりにくいです char *buf; struct stat st; ポインタをあらわす * (アスタリスク)の 位 置 には 二 通 りの 書 き 方 があります char *ptr; //ポインタの 書 き 方 1 char* ptr; //ポインタの 書 き 方 2 研 修 では 前 者 の 書 き 方 を 採 用 します 4. 関 数 呼 び 出 しと 制 御 文 のカッコ 次 のように 関 数 名 とカッコは 離 さずに 書 きます c = fgetc(fp); if, for, while, switch といった 制 御 文 では カッコの 前 にスペースを 置 きます if (a > 0) switch (c) 慣 例 として return 文 にはカッコをつけません return 0; return a + b; 4/13

5. 制 御 文 の 中 カッコの 位 置 もっとも 論 争 が 起 きる 点 です いくつか 例 を 挙 げてみましょう if (a > 0) { printf(... ); 例 1 これを 採 用 します if (a > 0) { printf(... ); 例 2 if (a > 0) { printf(... ); 例 3 書 籍 などでは 例 1 が 多 いようです これは C 言 語 の バイブル と 呼 ばれたりする プ ログラミング 言 語 C (カーニハン リッチー 著 共 立 出 版 )という 本 で 採 用 しているスタ イルであること また 行 数 が 少 なくて 済 むということなどが 理 由 でしょう ただし 関 数 の 最 も 外 側 の 中 カッコは 通 常 1カラム 目 に 書 きます int func( void ) { int a; : : 例 2 は if の 判 定 文 と if の 中 身 が 連 続 した 行 にならないので 見 やすい カッコの 対 応 がわ かりやすいなどのメリットがあります 例 3 の 書 き 方 は GNU のコーディング 規 約 にありますが それ 以 外 ではあまり 見 かけません 5/13

6. 改 行 について 一 行 に 複 数 の 文 を 書 くことは 避 けます x = a + 1; y = b + 2; // 不 可 if 文 や if 文 の else 節 while 文 なども 改 行 します if (v < 0) printf(stderr,... ); // 不 可 if (a > 1) { x = a + 1; else { y = b + 2; while (i < n) { *p++ = str[i++]; コンマ 式 も for 文 の 中 以 外 では 使 用 しません z = c + 1, c++; // 不 可 for (i = 0, j= 0; i < n && j < m; i++, j++) { // 可 : 6/13

7. 制 御 文 での{ 中 カッコの 省 略 次 のような 場 合 です if (fp == NULL) fp = stdin; このような 場 合 fp == NULL のときの 処 理 を 追 加 しようとして 中 カッコをつけ 忘 れるこ とがあります if (fp == NULL) fprintf(stderr, 標 準 入 力 より 読 み 込 みます \n ); fp = stdin; すると 条 件 (fp == NULL)にかかわらず fp = stdin; は 実 行 されてしまいます このよ うなミスの 予 防 も 兼 ねて 制 御 文 が 実 行 するコードが1 行 だけのときも 中 カッコでくくるよ うにします if (fp == NULL) { fp = stdin; 8. switch 文 のインデント switch 文 も 様 々な 書 き 方 がありますが 研 修 中 は 以 下 のように 統 一 します switch (errcode) { case MANY_ARG: case LESS_ARG: puts( NG ); break; case NORMAL: break; default: puts( INVALID_ERROR ); break; 中 カッコの 位 置 は 6. 制 御 文 の 中 カッコの 位 置 に 準 拠 します 処 理 の 内 容 と 見 易 さを 考 慮 し : 以 降 には(コメント 以 外 は) 何 も 書 かず 各 処 理 と break; はインデントしま す 7/13

9. 演 算 子 周 りのスペース 次 のように 演 算 子 の 前 後 にはスペースを 置 きます area = width_x * width_y; ただし ++ や -- にはつけません また ポインタ 演 算 子 としての * は 次 のように 書 きます c = *p; アロー 演 算 子 にはスペースを 空 けません size = moon->magic; 10. 式 まわりのカッコ if 文 では 条 件 式 が 複 雑 になることがあります if (a < b c < d && e < f) と if ((a < b) ((c < d) && (e < f))) では 後 者 のほうが 悩 んだり 間 違 えたりする 余 地 が 少 なくなります 演 算 子 の 順 序 も 忘 れがちです val = higher << 16 + lower; これは 次 のコードと 同 じです val = higher << (16 + lower); シフト 演 算 子 は 優 先 順 位 が 低 いので 要 注 意 次 のように 書 きます val = (higher << 16) + lower; 8/13

結 論 として 優 先 順 位 で 悩 まないよう 極 力 カッコをつけるようにすること 誤 解 の 余 地 のないコードを 書 きましょう 11. コメントについて コメントには 独 立 した 行 に 書 くコメントと 行 末 コメントがあります 独 立 した 行 に 書 くコメントのインデントは コメントしようとするコードにあわせます /*... */ for (... ) { /*... */...; 行 末 コメントは 前 後 の 行 でカラムをそろえるようにします char *from; /* 説 明 */ char *to; /* 説 明 */ 特 に 関 数 の 引 数 や 変 数 宣 言 では コメントを 必 ずつけるようにします コメントの 重 要 な 目 的 は 意 図 を 記 述 することです つまり 何 をしようとしているか を 読 む 人 に 知 らせることです 読 み 手 にとって コードがどのような 動 作 をするかを 理 解 するよりも その 動 作 の 意 図 を 理 解 することの 方 が 難 しいものです 時 々 修 正 時 に 削 除 した 部 分 をコメントアウトして 残 しておく というものが 見 受 けられ ます /* if (a == 0) { 2007.12 削 除 */ /* hogehoge(); 2007.12 削 除 */ /* 2007.12 削 除 */ このようなコメントは ソースプログラムを 読 みにくくする 以 外 何 の 役 にも 立 ちません 変 更 の 履 歴 は ソースファイル 中 のコメントではなく 専 用 のツール(CVS SCCS など)を 使 用 して 管 理 してください 9/13

12. 名 前 一 般 変 数 や 関 数 には そのものをよく 表 す 名 前 をつけます そのような 名 前 が 浮 かばない 場 合 その 役 割 があいまいになってはいないでしょうか? 異 なる 複 数 の 目 的 のために 使 用 され てはいないでしょうか? 変 数 や 関 数 はある 単 一 の 目 的 のためだけに 使 用 されるべきで そ うでないなら 分 割 します Cでは 古 くから 関 数 名 や 変 数 名 に 小 文 字 を 用 いるのが 普 通 でした 最 近 ではそうでもなく なってきましたが まあ 小 文 字 が 基 本 でしょう アンダーバー(_)も 名 前 に 使 え 単 語 の 区 切 りのように 用 いることができます get_filename(&buf, sizeof(buf)); 大 文 字 をまぜる 命 名 法 では おそらく 次 のようになります getfilename(&buf, sizeof(buf)); 動 詞 + 対 象 という 命 名 がよくされます #define したマクロでは 大 文 字 で 名 前 をつけます #define MAX_NAME 10 一 般 に 次 の 変 数 は 次 のような 目 的 で 使 われるものと 思 われています i, j, k int 型 で ループカウンタに 用 いられます c char あるいは int 型 で 文 字 を 入 れます s char * 型 で 文 字 列 n 何 らかの 数 やカウンタ(int 型?) p 何 らかのポインタ fp FILE * 型 で ファイルポインタ このようなものは 慣 習 と 異 なる 別 な 意 味 で 用 いないようにします もっと 具 体 的 な 名 前 が 考 えられる 時 は そちらを 使 いましょう 10/13

13. 行 数 (サイズ)について 大 きすぎる 関 数 は 見 通 しが 悪 く 理 解 することもテストすることも 難 しくなります し たがって バグも 多 く 発 生 します 関 数 が 大 きすぎるということは 不 必 要 に 複 雑 であり 機 能 分 割 が 不 十 分 であることを 意 味 します 一 つの 関 数 のサイズは 空 白 行 を 除 いて およそ200 行 以 内 にします それを 越 すよう でしたら 機 能 をよく 整 理 し 複 数 の 関 数 に 分 割 します また 一 つのファイルのサイズはできれば1000 行 以 内 に 大 きくても2000 行 以 内 にします 11/13

14. バグを 未 然 に 防 ぐ assert コーディングスタイルの 話 からはそれますが assert の 話 関 数 の 引 数 チェックに 用 いる ことを 強 く 推 奨 します assert は デバッグ 用 の 関 数 で assert( 式 );と 書 きます 式 が 成 立 していれば 何 もしない が 式 が 不 成 立 の 場 合 はエラーメッセージを 出 して 終 了 します たとえば 正 の 数 を 引 数 としてとる 関 数 があるとします 設 計 では 正 の 数 かのチェックは その 関 数 を 呼 ぶ 側 が 行 い 正 の 数 しか 渡 ってこない ことになっています assert はこの ような 場 合 に 用 います #include #include <assert.h> <stdlib.h> int foo( int count) /* 正 の 数 */ { assert(count >= 0); /* 引 数 のチェック */ : assert なしで もし 負 の 数 が 渡 されたらどのような 動 作 をするのでしょうか 正 の 数 が 来 る はず なのでわかりません でしょうか わかりません というのは 厄 介 なバグを 生 む 大 きな 原 因 です 一 見 正 常 そうに 動 作 してしまうかもしれません それは 大 変 に 危 険 で す assert を 追 加 すると プログラムは 極 端 に 明 解 な 動 作 をします 仮 定 していない 値 が 渡 さ れたらエラー 終 了 するのです ここで assert は 内 部 的 な 不 整 合 を 検 出 している 点 に 注 意 してください 間 違 えているのは ユーザーではなく この 関 数 を 作 った 人 つまり 開 発 者 です このあたりの 切 り 分 けはな かなか 難 しいのですが 大 事 なことです ユーザーの 入 力 エラーに 対 しては assert は 用 いず もっと 美 しくエラー 終 了 すべきです はじめは assert にしておき 後 でエラーメッセージ 表 示 処 理 に 置 き 換 えていく 方 法 もあり ますが ともかくプログラムから このようなときの 動 作 はわかりません という 状 態 を なくすことです 12/13

15. 最 後 に 以 上 研 修 で 採 用 するコーディングスタイルの 説 明 およびアドバイスでした コーディングスタイルは 誰 でも 自 分 の 慣 れたスタイルが 書 きやすく 読 みやすいです また それぞれのスタイルにはそれぞれの 良 さがあり どちらが 優 れていると 判 定 できない 項 目 が 多 数 あります では 何 故 プロジェクトで 統 一 するかというと 個 々がバラバラのスタイルを 採 用 すると 全 体 として 非 常 に 見 難 いプログラムが 出 来 上 がってしまうからです ソースを 納 める 前 に indent コマンドを 実 行 する 事 を 求 められるジョブもあるくらいです (indent コマンドは ソースコードを 設 定 したコーディングスタイルに 矯 正 する)プロジェクトでどのコーディ ングスタイルを 採 用 するかはまちまちです ということで 以 上 に 述 べたコーディングスタイルは 絶 対 ではありません 重 要 なのは スタイルを 統 一 することにより 読 みやすく 美 しいプログラムを 書 く ということです 以 上 13/13