検索 - みる会図書館

検索対象: 月刊 C MAGAZINE 1991年3月号

月刊 C MAGAZINE 1991年3月号から 170件ヒットしました。

月刊 C MAGAZINE 1991年3月号


00M EDITORS 次 号 予 告 >4 月 号 ( 3 月 18 日 発 売 ) な お , 予 告 内 容 を 変 更 す る こ と が あ り ま す 。 特 別 付 録 を 2H 巻 頭 イ ン タ ビ ュ ー ・ オ ー ノ ヾ レ イ プ ロ グ ラ ム 高 実 行 ツ ー ル 「 OVL2EMS 」 ・ C コ ン ヾ イ ラ 「 L 引 C ー 86 試 食 版 」 Robert ScheifIer ・ 本 誌 新 連 載 に AN 引 C 言 語 入 門 講 座 」 活 用 集 ・ 本 誌 「 GNU 奮 闘 記 」 紹 介 フ ロ グ ラ ム ( 3 ) MIT's X Window Conso ⅲ um テ ィ レ ク タ ー ・ 本 誌 掲 載 ケ ス プ ロ グ ラ ム デ ギ ン グ 入 門 ANSI ! 第 入 門 講 座 デ ヾ ッ ギ ン グ 概 論 デ ヾ ッ グ し や す い プ ロ グ ラ ミ ン グ 手 法 ア ル ゴ リ ズ ム と デ ー タ 構 造 入 門 デ ヾ ッ ギ ン グ ッ ー ル の 実 際 新 MS - DOS プ ロ グ ラ ミ ン ク 入 門 ANSI C ー more 短 期 連 GNU 奮 闘 記 拡 張 C 言 語 と し て の C 十 十 ( 3 ) COMPUTER LANGUAGE 提 携 記 事 最 新 開 発 環 境 レ ポ ー ト Hanging on the Metaphone —rSmaIItaIk-80J Permutation Generation 編 集 後 記 ◇ 無 謀 に も UNI 坊 , ョ イ ド ◇ 1 月 発 売 の 「 秘 伝 C 言 語 問 ◇ 1 月 に な っ て , 今 シ ー ズ ン ◇ イ ス ラ ム の 人 々 は , よ く ◇ ア ル バ イ ト の K 君 が パ ソ コ レ の 二 人 を 引 き 連 れ て ス キ 答 ポ イ ン タ 編 』 が , 大 変 「 寿 命 に は 終 わ り が あ る が , 初 め て の ス キ ー に 行 っ た 。 ン に 向 か っ て ニ ャ ニ ヤ し て ー に 行 っ て き た 。 意 外 に 日 好 調 な 売 行 き て 、 あ る が , 本 仕 事 に は 終 わ り が な い 」 と 言 い る 。 何 を し て い る の か の ス ポ ー ツ は 好 き だ と よ く 日 頃 運 動 不 足 を 嘆 く UNI 坊 が 書 の タ イ ト ル づ け は な か な う 。 「 人 生 は 1 度 し か な く , ぞ き 込 む と UNO と い う カ ー っ て い る が , ス キ ー は ( も ? ) ス ヒ 。 ー ド に 強 い 。 人 の 板 を か 大 変 て あ っ た 。 著 者 か ら し か も 短 い 。 仕 事 は い っ て 、 ド ゲ ー ム を 行 っ て い た 。 何 へ タ だ 。 滑 っ て 降 り て く る 踏 み つ け て く れ た が ・ ・ ・ の 意 向 は , 同 じ も の だ っ た も て 、 き る の だ か ら , 人 生 を が お か し い の か 聞 い て み る よ り も , 転 が っ て 降 り て く 対 し て , 体 力 一 本 勝 負 の ヨ の だ が , 「 も う 一 声 」 と い う と , 「 プ レ イ ヤ ー の 名 前 を 〇 楽 し み な さ い 」 と い っ た 意 味 る 方 が 速 い の だ 。 巧 く 滑 れ イ ド レ の 情 け な い こ と と い こ と て 、 , 「 ポ イ ン タ が わ か る 〇 〇 〇 〇 〇 〇 と 登 録 し て ゲ る よ う に な っ た な と 思 う と , ら し い 。 よ く わ か っ て は い っ た ら , も う ・ ・ べ タ ベ ん て 、 す 』 「 絶 対 安 全 ポ イ ン タ 次 の 日 に は も う ぞ き な く な ー ム を 行 う と , カ ー ド が 出 る が , や つ ば り 仕 事 に 終 わ タ と 雪 を 舐 め る の が 好 き ら せ な い と き の メ ッ セ ー ジ が 教 本 』 「 必 殺 ポ イ ン タ 料 理 っ て い る 。 こ ん な 私 て 、 も ス り は な し し か し フ セ し い 。 若 さ よ り も キ ャ リ ア 法 』 等 の 案 が 出 た 後 て 、 , 結 『 〇 〇 〇 〇 〇 〇 〇 は 何 も 出 キ ー の キ ャ リ ア は 12 年 も あ イ ン さ ん , 人 生 は 1 度 て 、 す が も の を い う 世 界 が あ る こ 局 最 初 の 案 が 一 番 と い う こ る の だ 。 た だ , プ ラ ン ク が ま せ ん て 、 し た 』 っ て な る ん ( 湾 岸 戦 よ ! と を 思 い 知 っ た か ! ( ホ ) と に な っ た 訳 て 、 あ る 。 ( 野 ) て 、 す よ 」 だ っ て ? ( 洋 ) 11 年 あ っ た だ け さ 。 (JUN) 争 の 早 期 終 結 を 祈 り ま す ) 発 行 人 孫 正 義 月 刊 編 集 人 橋 本 五 郎 発 行 所 ソ フ ト バ ン ク 株 式 会 社 出 版 事 業 部 〒 108 東 京 都 港 区 高 輪 2-19-13 、 S 高 輪 ビ ル 編 集 部 ・ TeI 03 ( 5488 月 引 8 / 出 版 営 業 部 ・ Tel 03 ( 5488 ) ロ 60 / 広 告 営 業 部 ・ Tel 03 ( 5488 ) ロ 65 編 集 長 星 野 慎 ー 編 集 宮 田 洋 一 流 王 天 渡 辺 淳 一 校 正 ア レ フ デ ザ イ ン 持 田 哲 花 本 浩 一 赤 井 晴 美 若 江 啓 子 機 部 進 監 修 石 田 晴 久 印 刷 凸 版 印 刷 株 式 会 社 / 写 植 株 式 会 社 風 芽 0 1991 雑 誌 14325 ー 3 特 集 好 評 連 載 プ ロ グ ラ ム ・ バ グ の お 問 い 合 わ せ 容 03 ( 5488 ) 1325 MAGAZINE 3 月 号 平 成 3 年 3 月 一 日 発 行 ・ 掲 載 記 , プ ロ グ ラ ム に つ い て の ご 質 間 は , 月 曜 Ⅱ か ら 金 曜 日 の 午 後 4 時 か ら 6 時 ま て 、 受 け 付 け て お り ま す 。 そ の 他 の 時 間 帯 は ご 容 赦 く だ 160 C MAGAZINE 1991 3

月刊 C MAGAZINE 1991年3月号


門 オ プ た ク ト 指 向 ・ 新 刊 図 書 の こ 案 内 ( 定 価 は 税 込 ) Readers' 、 ① 0 TurboC 十 十 オ プ ジ ェ ク ト 指 向 プ ロ ク ラ ミ ン ク 入 門 —ANSI C, AT&T C 十 十 Ve 「 2.0 版 ー 中 山 茂 著 / A5 ・ 320 頁 ・ 定 価 2 , 369 円 BASIC ユ ー ザ や C ビ ギ ナ - の た め の 入 門 書 。 C か ら グ レ ー ド ア ッ プ さ れ た C 十 十 の 基 礎 知 識 ・ 基 本 操 作 , 統 合 開 発 環 境 メ ニ ュ ー は も と よ リ , C 十 十 の 特 徴 て あ る オ プ ジ ェ ク ト 指 向 プ ロ グ ラ ミ ン グ を 自 由 に 駆 使 て き る よ う , 基 本 的 考 え 方 か ら 実 技 ま て を 詳 述 PC9801 , FMR 対 応 PC98 ( ) 1 対 応 PC 98 ( ) 1 対 応 モ ニ タ 募 集 綴 じ 込 み の 葉 書 で こ 応 募 く だ さ い 。 1 本 Quick FILE/db MSC PASSWORD-a 提 供 . ク レ ッ セ ン ド カ ン パ ニ 提 供 : 株 ラ ン 八 一 ド 2 本 OuickFlLE /db TurboC,TurboC 十 十 ク ラ フ ィ ッ ク ス プ ロ ク ラ ミ ン ク 入 門 —TurboC 2.0c, TurboC 十 十 1.0 版 ー 中 山 茂 著 / A5 ・ 286 頁 ・ 定 価 2 , 369 円 GOTOiJ\ 不 要 , 豊 富 な 関 数 , 記 号 定 数 に よ る 色 指 定 , 効 果 的 フ ォ ン ト な ど , グ ラ フ ィ ッ ク ス に 適 し た C , C 十 十 プ ロ グ ラ ミ ン グ の 基 礎 か ら , 基 本 操 作 , 効 果 的 グ ラ フ ィ ッ ク ス を 用 い た シ ス テ ム 構 築 , 関 数 を 学 ぶ た め の CAI の 作 成 ま て を 修 得 て き る テ キ ス ト PASSWORD-a C 言 語 ラ イ プ ラ リ 集 PC ー 9800 MSC セ キ ュ リ テ イ ソ フ ト PC -9800 用 秘 伝 C 言 語 問 答 ポ イ ン タ 編 10 冊 Computer LANGUAGE 』 1 冊 提 供 : C マ ガ ジ ン 編 集 部 提 供 : ソ フ ト ノ ヾ ン ク 株 LANGIJAGÜ 生 里 ー ン ー 竊 紙 iN ポ イ ン タ 編 好 教 育 用 C 言 語 の ABC 中 山 茂 著 / A5 ・ 270 頁 ・ 定 価 3 , 090 円 情 報 処 理 教 育 を 担 当 す る 現 場 教 員 の た め の C 言 語 入 門 書 。 BASIC に 馴 染 み の な い 者 て も 十 分 理 解 て き る よ う , 例 題 ・ 研 究 問 題 を 数 多 く と リ 入 れ た ほ か , BA SI C と C 言 語 の プ ロ グ ラ ム 対 比 も 行 な い な か ら 平 易 に 解 説 コ ン ビ ュ ー タ 佐 伯 平 ニ 著 / B6 ・ 238 頁 ・ 定 価 1 , 854 円 わ か リ や す い 図 を も と に , コ ン ヒ ュ ー タ の 仕 組 み や 装 置 の 働 き , 性 能 , 使 い 方 な ど を や さ し く 解 説 。 こ れ か ら 始 め る 人 の た め の , す く わ か る ユ ニ ー ク な ハ ー ド ウ ェ ア 入 門 書 DECEMBER ケ ー ト な ど の 形 式 で 編 集 に こ 協 力 い た だ き ま 応 募 の 注 意 ◇ 綴 じ 込 み 葉 書 に 必 要 事 項 ( ア ン ケ ー ト の 回 す 。 こ 了 承 く だ さ い 。 答 , 住 所 , 氏 名 , 電 話 番 号 , 希 望 プ レ ゼ ン ト ◇ 締 め 切 り は 3 月 18 日 必 着 で す 。 番 号 ) を 明 記 の う え こ 応 募 く だ さ い 。 あ て 先 ◇ 記 入 も れ や プ レ ゼ ン ト 番 号 が 複 数 記 入 さ れ 〒 108 東 京 都 港 区 高 輪 2 ー 19 ー 13 NS 高 輪 ビ ル ソ フ ト ノ ヾ ン ク 株 て い る 場 合 , 綴 じ 込 み 葉 書 以 外 で の こ 応 募 は 「 C マ ガ ジ ン 」 編 集 部 無 効 と さ せ て い た だ き ま す 。 ◇ プ レ ゼ ン ト に 当 選 さ れ た 方 に は , 後 日 ア ン モ ニ タ 募 集 係 ⑩ 応 用 C 言 語 ① 巻 頭 イ ン タ ビ ュ ー ② Programming on Purpose ⑩ C 言 語 フ ォ ー ラ ム ③ 提 携 翻 訳 「 Winodows か ら OS / 2 へ 」 ⑩ 実 践 C プ ロ グ ラ マ 養 成 講 座 ~ し み 葉 書 裏 面 の ④ 提 携 翻 訳 「 OS / 2 用 の コ マ ン ド ラ イ ン 」 ⑩ C 言 語 雑 学 講 座 記 事 評 価 ア ン ケ ー ト ⑤ フ リ ー ソ フ ト ウ ェ ア 最 新 レ ポ ー ト ⑩ C 言 語 入 門 講 座 に は 柾 の 数 義 こ ⑥ 特 集 汎 用 FEP 制 御 ラ イ プ ラ リ ⑩ 最 新 環 境 開 発 レ ポ ー ト ⑦ ア ル ゴ リ ズ ム と デ ー タ 構 造 入 門 記 入 く だ さ い 。 ⑩ プ ロ グ ラ ミ ン グ 添 削 ⑧ オ プ ジ ェ ク ト 指 向 へ の 招 待 ⑩ GNU 奮 闘 記 ⑩ 丹 羽 の 発 想 快 発 ⑨ 拡 張 C と し て の C 十 十 ⑩ 新 MS-DOS 入 門 ⑩ lnformation from Compiler Makers 技 報 堂 出 版 〒 107 東 京 都 港 区 赤 坂 1 ー 11 ー 41 容 03 ( 3585 ) 0166 FAX03 ( 3505 ) 5838 く 資 料 請 求 番 号 158 〉 158 C MAGAZINE 1991 3

月刊 C MAGAZINE 1991年3月号


新 MS ー DOS プ ロ ク ラ ミ ン ク 入 門 c プ ロ グ ラ マ の た め の ン ト を 示 し ま す 。 ソ ー ス リ ス ト を 参 照 し て く だ さ い ・ デ ィ レ ク ト リ の 再 帰 検 索 ・ 標 準 入 力 を リ ダ イ レ ク ト 中 の キ ー 入 カ ・ フ ァ イ ル 属 性 の 参 照 と ア ー カ イ プ 属 性 の リ セ ッ ト ・ フ ァ イ ル 日 付 の 参 照 な お , 本 ユ ー テ ィ リ テ ィ て 、 は フ ァ イ ル を 複 び す る 前 に 複 び 先 の デ ィ ス ク の 空 き 容 量 を 確 認 し て い ま す が , そ の 判 定 に 次 の よ う な バ グ が あ り ま す 。 複 写 先 の 空 き 容 量 を 計 算 す る と き に 複 写 先 に 複 写 す る フ ァ イ ル 名 が す て 、 に 存 在 す る 場 合 , 「 空 き 容 量 十 複 写 先 の フ ァ イ ル サ イ ズ 」 を 空 き 容 煢 と 判 定 し て い ま す 。 1 . MS-DOS て 、 は フ ァ イ ル の 管 理 を ク ラ ス タ 単 位 て 、 行 う た め , 1 ク ラ ス タ = 1024 バ イ ト 複 び 先 の フ ァ イ ル サ イ ズ = 500 バ イ ト て 、 あ れ ば , 実 際 よ り 空 き 容 量 が 1024 ー 500 = 524 バ イ ト 少 な い も の と し て 判 定 し て い ま す 。 こ の バ グ が 気 に な る 方 は 修 正 し て く だ ・ 注 意 事 項 本 ユ ー テ ィ リ テ ィ は 当 初 , フ ァ イ ル の デ イ リ ー バ ッ ク ア ッ プ に 使 用 し て い ま し た 。 し か し , 複 数 デ ィ ス ク に 渡 る 複 写 を サ ポ ー ト し て い な い た め , サ イ ズ の 大 き な デ ィ レ ク ト リ の 場 合 は 一 度 複 写 す る フ ァ イ ル を 決 め て か ら , 次 回 以 降 ス イ ッ チ ー ! を 指 定 し て 起 動 す る 必 要 が あ り ま す 。 複 数 デ ィ ス ク に 渡 る 複 写 を サ ポ ー ト す れ ば も う 少 し 便 利 に な る と 思 い ま す 。 余 談 て 、 す が , 複 数 デ ィ ス ク の サ ポ ー ト は フ ァ イ ル 圧 縮 ツ ー ル が サ ポ ー ト す れ ば 非 常 に 便 利 だ と 思 い ま す 。 あ ま り 使 用 さ れ て い な い と 思 わ れ る MS ー DOS の BACKUP/ RESTORE コ マ ン ド の 代 わ り と し て 非 常 に 前 宝 す る は ず て 、 す ( LHarc は デ ス テ ィ ネ ー シ ョ ン に 複 数 デ ィ ス ク を サ ポ ー ト し て い る の て 、 し よ う か ! ? ) 。 102 C MAGAZINE 1991 3 dc 叩 y. c て 、 は 表 示 に fputs 関 数 を 使 用 し て い ま す ( も と も と の ソ ー ス は write 関 数 を 使 用 し て い ま し た ) 。 fprintf 関 数 を 使 用 す れ ば , 少 し だ け ソ ー ス が 見 や す く な る て 、 し よ う 。 EXE フ ァ イ ル の サ イ ズ を 小 さ く 抑 え る た め に た ま に こ の よ う な プ ロ グ ラ ム を 誓 く こ と が あ り ま す 。 fputs 関 数 の 使 用 に 関 し て , こ れ 以 外 の 理 山 は あ り ま せ ん 。 お わ り に 自 作 プ ロ グ ラ ム て 、 フ ァ イ ル を 処 理 す る プ ロ グ ラ ム を 作 成 す る と フ ァ イ ル の 検 索 機 能 は 欠 か す こ と が て 、 き ま せ ん 。 コ マ ン ド ラ イ ン て 、 指 定 さ れ た ワ イ ル ド カ ー ド の 展 開 だ け て 、 あ れ ば , C 言 語 に 付 属 す る ワ イ ル ド カ ー ド を 展 開 す る 関 数 ラ イ プ ラ リ setargv. obj(MS (C),wildargs. obj(Turbo C) な ど を リ ン ク す れ ば プ ロ グ ラ ム て 、 わ ざ わ ざ 処 理 す る 必 要 は あ り ま せ ん 。 し か し , プ ロ グ ラ ム 起 動 後 に 指 定 さ れ た ワ イ ル ド カ ー ド を 展 開 す る と き は プ ロ グ ラ ム て 、 の 処 理 が 必 要 て 、 す 。 ま た , デ ィ レ ク ト リ を 再 帰 的 に 検 索 す る 場 合 に も プ ロ グ ラ ム て 、 処 理 し な け れ ば な り ま せ ん 。 今 回 紹 介 し た 内 容 が み な さ ま の 自 作 プ ロ グ ラ ム 作 成 に 少 し て 、 も 役 に た て ば 幸 い て 、 す 。 【 参 考 文 献 】 TMS-DOS 3.1 プ ロ グ ラ マ ー ズ リ フ ァ レ ン ス マ ニ ュ ア ル 』 , NEC 2. TMS-DOS 3.1 マ ク ロ ア セ ン プ ラ マ ニ ュ ア ル 』 , NEC 3. TMS-DOS 3.1 ュ ー ザ ー ズ リ フ ァ レ ン ス マ ニ ュ ア ル 』 , NEC TMS-DOS 3.3B プ ロ グ ラ マ ー ズ リ フ ア レ ン ス マ ニ ュ ア ル 』 V01. 1 , V01. 2 , N EC fMS-DOS 3.3B ュ ー ザ ー ズ リ フ ァ レ ン ス マ ニ ュ ア ル 』 , NEC 「 J ー 3100 シ リ ー ズ テ ク ニ カ ル マ ニ ュ ア ル ( ソ フ ト ウ ェ ア 編 ) V3.1 』 , 東 芝 「 J ー 3100 シ リ ー ズ テ ク ニ カ ル マ ニ ュ ア ル ( ソ フ ト ウ ェ ア 編 ) V2.11 』 , 東 芝 8. TAX テ ク ニ カ ル レ ポ ー ト 』 , 翔 泳 社 rMS-DOS 工 ン サ イ ク ロ ペ デ ィ ア V01 umel シ ス テ ム 解 説 編 』 , ア ス キ ー 『 MS ー DOS ェ ン サ イ ク ロ ペ デ ィ ア V01 ume2 リ フ ァ レ ン ス 編 』 , ア ス キ ー fMicrosoftC 5.1 Optimizing Compil er User's Guide 』 , Microsoft fMicrosoftC 5.1 Optimizing CompiI er Language Reference 』 , Microsoft fMicrosoftC 5.1 Optimizing CompiI 13 . 12 . 11. 10 . 9 . 7. 6 . 5 . 4 . er Mixed Language Programming G uide 』 , Microsoft fMicrosoftC 5.1 Optimizing CompiI er Run-Time Library Reference1, 2 』 , Microsoft 『 Microsoft Macro AssembIer Progra mmer's Guide 』 , Microsoft 『 TURBO C USER'S GUIDE 』 , BOR LAND 『 TURBO C REFERENCE GUIDE 』 , BORLAND 18. TTURBO ASSEMBLER USER'S GUIDE 』 , BORLAND 『 TURBO ASSEMBLER REFERENC E GUIDE 』 , BORLAND 20. IfLSIC-86 Ver. 3.2 試 食 版 ユ ー ザ ー ズ マ ニ ュ ア ル 』 , 工 ノ レ ・ エ ス ・ ア イ シ ャ ノ ヾ ン 21. 中 島 信 行 , TMS-DOS の デ ィ ス ク 管 理 と フ ァ イ ル 復 活 ユ ー テ ィ リ テ イ 』 , 『 イ ン タ フ ェ イ ス 』 1990 年 5 月 号 22. 中 島 信 行 , 『 MS-DOS の CTRL キ ー 制 御 と 例 外 ハ ン ド ラ 』 , 『 イ ン タ フ ェ イ ス 』 1990 年 10 月 号 , 11 月 号 19 . 17 . 16 . 15 . 14 .

月刊 C MAGAZINE 1991年3月号


12 月 号 の ク イ ズ の 解 答 12 月 号 の ク イ ズ は , 「 簡 易 pscanf に 対 応 す る Table 2 の フ ォ ー マ ッ ト 文 字 列 を も つ 簡 易 printf を 作 り な さ い 。 関 数 名 は pprintf と す る 。 第 一 引 数 は フ ォ ー マ ッ ト 文 字 列 の み と す る 。 ま た 関 数 pprintf の 動 作 を 確 認 す る 簡 単 な main 関 数 を 作 り な さ い 。 こ の と き Tab 厄 2 の フ ォ ー マ ッ ト を す べ て 含 ん だ 例 に す る こ と 」 で し た ね 。 今 回 は , い つ も よ り 応 募 が 少 な か っ た よ う で す 。 可 変 引 数 と い う こ と で , 少 し 難 し か っ た か も し れ ま せ ん ね 。 今 回 の 出 題 で は , 数 値 を 文 字 列 に 変 換 す る 部 分 に 苦 労 す る だ ろ う と 予 想 し て い ま し た が , 自 作 で 数 値 を 文 字 列 に 変 換 す る 関 数 を 作 っ た 方 は い ま せ ん で し た ( AN の 標 準 ラ イ プ ラ リ 関 数 の 中 に は , 数 値 を 文 字 列 に 変 換 す る 関 数 は な い の で す 。 こ の よ う な 関 数 を 定 め て い な い AN 規 格 に 不 満 の 残 る と こ ろ で す ) 。 int 型 を 文 字 列 に 変 換 す る に は itoa ( ) を , long 型 を 文 字 列 に 変 換 す る に は は oa ( ) と い う 処 理 系 依 存 の 関 数 を 使 っ て い ま し た 。 浮 動 小 数 点 を 文 字 列 に 変 換 す る に は , UNIX 互 換 の 関 数 fcvt( ) , gcvt( ) , ecvt( ) の ど れ か を 使 っ て い ま し た 。 こ れ ら の 関 数 は , 大 抵 の 処 理 系 に あ る の で , 移 植 性 に そ ん な に 問 題 は な い で し よ う 。 ク イ ズ の 解 答 に よ く 使 わ れ て い た ラ イ プ ラ リ 関 数 の 説 明 を Tab 厄 3 に 示 し ま す 。 そ れ 関 数 pp 「 intf の フ ォ ー マ ッ ト 文 字 TabIe 2 TabIe 3 ■ 関 数 ■ 用 法 ■ 機 能 ク イ ズ の 解 答 に よ く 使 わ れ て い た ラ イ プ ラ リ 関 数 itoa char * itoa( int value, char * str, int radix ) : 関 数 itoa は , int 型 の 値 va ⅳ e を \ 0 て 終 わ る 文 字 列 に 変 換 し , そ の 結 果 を 文 字 配 列 st 「 に 代 入 し ま す 。 「 ad ⅸ は , va ⅳ e を 変 換 す る 基 数 を 表 し ま す 。 1 0 進 数 に 変 換 す る と き に は , radix= 1 0 と し ま す 。 返 り 値 は , 文 字 配 列 str へ の ポ イ ン タ で す 。 ・ 関 数 ・ 用 法 ■ 機 能 ・ 関 数 ・ 用 法 ・ 機 能 に oa char * oa い ong value, char * str, int 「 adix ) : 関 数 に oa は , 関 数 itoa の long 型 ノ ヾ ー ジ ョ ン で す 。 g cvt char * gcvt( double value, int ndec, char * buf ) : 関 数 gcvt は , doub 厄 型 の 値 va ⅳ e を ' \ 0 ' で 終 わ る 文 字 列 に 変 化 に 変 換 し て , そ の 文 字 列 を 文 字 配 列 buf に 格 納 し ま す 。 関 数 gc ⅵ は , 可 能 な ら ば , FORTRAN の F 変 換 に 従 っ て nde c 桁 の 有 効 数 字 の 文 字 列 を 生 成 し ま す 。 F 変 換 が 不 可 能 な 場 合 は , p 「 in 廿 の E 形 式 の 文 字 列 を 生 成 し ま す 。 後 ろ に 続 く 意 味 の な い 0 は 文 字 列 に 含 ま れ ま せ ん 。 関 数 gcvt の 返 り 値 は , 文 字 配 列 buf へ の ポ イ ン タ で す 。 List 12 2 : 34 : 30 : 29 : 28 : 26 : 24 : 23 : 22 : 20 : 9 : 8 : 7 : 6 : 5 : 4 : 3 : 川 窪 さ ん の 解 答 ( pprin 廿 . c ) c 言 語 入 門 講 座 9 0 年 1 2 月 号 課 題 : MS=DOS Ver3. 30B OS function 簡 易 版 printf pprintf. c Filename Compiler Date Made by : TurbO C : 1990. 11.24 : 川 窪 功 ( 使 用 法 ) フ ォ ー マ ッ ト 型 1 d Char int long float doub le Char * (controll code) return line feed printf()s i d3nr ” ,a, b, c) ( 例 ) ( * ) f,d は 小 数 以 下 の 桁 数 指 定 可 ( 例 : f3) 128 フ ォ ー マ ッ ト 文 字 C MAGAZINE 1991 3 Char i nt long float double Char * 型 ( 文 字 列 ) 31 : #include く stdio. h> 32 : #include く stdlib. h> 33 : #include く stdarg. h> #include く ctype. h 〉 36 : #define MÅXBUF 128

月刊 C MAGAZINE 1991年3月号


MAGXZINE 3 MAGAZINE 1 . 凵 ト ー 、 匯 羅 2. ・ ※ ・ 3. 4. 燿 澪 10. 罫 11 . 斗 ー e メ 12. 》 こ . fi 求 一 4. 一 を 15. 洋 ・ 三 新 16. 小 言 1 . 》 耋 2. T. 斗 ー e メ ・ 「 一 3. ヰ 蟶 4. 三 5. 洋 11. 小 nfL 〔 瀾 ま 〕 ド 滝 籌 ぎ C . 受 A 題 ド 滝 当 籌 ぎ MAGAZ O > O > O > O > O > O > O > O >

月刊 C MAGAZINE 1991年3月号


宣 言 の 部 分 と , 繰 り 返 し や 分 岐 の と こ ろ な ど の 制 御 構 造 の 節 目 に コ メ ン ト を 入 れ ま す 。 そ れ て 、 は , List 6 を 見 て く だ さ い 。 こ れ は オ ー ソ ド ッ ク ス な main 関 数 の 書 き 方 3 : nain() 2 : 1 : #include く stdio. h> List 7 文 字 列 操 作 の 関 数 ( コ ヒ 。 ー と 比 較 ) を 説 明 し た 方 法 て 、 , コ メ ン ト を 入 れ て 記 述 し た も の て 、 す 。 実 際 に は , List 6 は わ か り き っ た ア ル こ ま て 、 詳 し く 書 ゴ リ ズ ム の 関 数 な の て 、 , く 必 要 は な い の て 、 す が , コ メ ン ト の 入 れ 方 の 例 と し て 見 て く だ さ い main 関 数 を int 型 と し て 定 義 す る 書 き 方 1 : #include く stdiO. h> 2 : 3 : int main( void ) List 10 5 : printf("This is the C Magaz ine. 5 : 6 : printf("This is the C Magazine. %n") : return 0 : List 8 main 関 数 を void 型 と し て 定 義 す る 書 き 方 1 : #include く stdio. h> 2 : 3 : void main( void ) 5 : printf("This is the C Magazine. Yn") : List 1 1 OS に 値 を 返 す main 関 数 の 書 き 方 ( exit ) ex i t ( 0 ) : printf("This is the C Magazine. %n"); 4 : void main( void ) 2 : #include く stdlib. h> 1 : #include ßtdio. h> 7 : 6 : 3 : List 9 OS に 値 を 返 す main 関 数 の 書 き 方 ( 「 eturn ) 3 : main() 2 : 1 : #include く stdiO. h> 5 : 6 : printf("This is the C Magazine. %n"); return 0 : 126 C MAGAZINE 1991 3

月刊 C MAGAZINE 1991年3月号


書 店 レ ポ ー ト 株 書 泉 / 古 田 島 義 和 W) ) , fObject-Oriented Design 』 (). W) , H) , fFratal Programming and Ray ー オ プ ジ ェ ク ト 指 向 関 連 書 TObject-Oriented Program Design 』 (A. Tracing with C 十 十 』 (M&T) , flntroduc W) , fObject Vision 』 (). W)O 新 刊 と し て 3 年 ほ ど 前 か ら 「 オ プ ジ ェ ク ト 指 向 」 関 連 書 tion tO Programming with M0dula-2 』 fObjct-Oriented Analysis 2 / E 』 (). H) , 籍 ( 「 オ プ ジ ェ ク ト 指 向 の プ ロ グ ラ ミ ン グ 』 (Springer-Verlag) な ど , 売 れ 行 き 良 好 書 と fObject ー Oriented M0delling and ( ト ッ パ ン ) , 『 オ プ ジ ェ ク ト 指 向 : シ ス テ ム 新 刊 書 を 羅 列 し ま し た 。 今 後 ア プ リ ケ ー シ ョ Design 』 (). H), fObject ー Oriented 分 析 』 ( 啓 学 出 版 ) , 『 オ プ ジ ェ ク ト 指 向 入 門 』 ン を 含 め て ど の 方 向 に い く か が 楽 し み て 、 す 。 Databases 』 (). H) , fThe Tao of Object 』 ( オ ー ム 社 ) な ど ) が 出 版 さ れ , 好 調 な 売 れ 行 ー 和 書 の ベ ス ト 10 き を 示 し て い ま す 。 そ し て 昨 年 末 に 「 オ プ (M&T) , TObject ー Orientation 』 (John WiIey) , fBuiIding an Object-Oriented ジ ェ ク ト 指 向 入 門 』 ( ア ス キ ー , 原 本 「 Object 和 書 の ベ ス ト 10 に , ひ さ し ぶ り の Weinberg Databases System:The Story of 02 』 ー Oriented Software Construction 』 氏 の 書 籍 『 コ ン サ ル タ ン ト の 秘 密 』 ( 共 立 出 (Prentice Hall( 以 下 P. H) ) が 発 売 さ れ た 頃 (Morgan Kaufmann) な ど が 注 目 さ れ ま す 。 版 ) が 入 り ま し た 。 そ れ に と も な い 同 氏 の 『 計 か ら オ プ ジ ェ ク ト 指 向 プ ー ム が 一 層 加 速 し こ の ほ か に 雑 誌 fJournaI of Object-Ori 算 機 入 力 の 人 間 学 』 , 『 ラ イ ト つ い て い ま す ented Programming 』 と 『 C 十 十 Journal 』 ま し た 。 同 書 は オ プ ジ ェ ク ト 指 向 の 第 一 人 か 』 , 「 シ ス テ ム づ く り の 人 間 学 』 も 好 調 な が あ り , 書 泉 グ ラ ン デ て 、 も 定 期 的 に 入 荷 す 者 て 、 も あ る Meyer 氏 の 著 作 て 、 , オ プ ジ ェ ク 売 れ 行 き て 、 す 。 ベ ス ト 10 は あ い か わ ら ず る 予 定 て 、 す 。 こ の 2 誌 に よ り , 今 後 オ プ ジ ェ ト 指 向 関 連 書 籍 の 中 心 的 な 存 在 て 、 す 。 改 訂 UNIX, C 言 語 , 不 ッ ト ワ ー ク が 中 心 て 、 す ク ト 指 向 の 最 新 情 報 が 入 手 て 、 き る て 、 し よ う 。 第 2 版 も 昨 年 末 に 出 版 さ れ る 予 定 て 、 し た が , が , 19 位 に 『 オ プ ジ ェ ク ト 指 向 入 門 』 ( ア ス Meyer 氏 が イ ン ド の 山 奧 に 行 っ て し ま い 現 キ ー ) が が ん ば っ て い ま す 。 和 書 も 今 後 オ プ オ プ ジ ェ ク ト の 在 具 体 的 な も の に な っ て い な い の て 、 ' 92 年 頃 ジ ェ ク ト 指 向 の 良 好 書 が 増 え る こ と て 、 し よ ア プ リ ケ ー シ ョ ン 書 籍 に な る と 見 ら れ て い ま す 。 ま た , 本 誌 ' 89 年 ア プ リ ケ ー シ ョ ン 関 連 書 は , Smalltalk, 12 月 号 て 、 も 紹 介 し た 「 プ ロ グ ラ ミ ン グ 言 語 最 後 に 洋 書 て 、 fUndocumented DOS 』 (A. Turbo C 十 十 , Turbo Pascal な ど を 中 心 に C 十 十 』 ( ト ッ パ ン ) , ℃ 十 十 : オ プ ジ ェ ク ト W) が 入 荷 し て 間 も な く 売 り 切 れ に な り , 問 人 気 が 集 ま っ て い ま す 。 『 AC 十 十 ToolKit 』 指 向 プ ロ グ ラ ミ ン グ 』 ( ト ッ パ ン ) が 急 激 な い 合 わ せ も 多 く , 人 気 の 高 さ を 示 し て い ま (). H) , 「 C 十 十 Techniques and AppIeca す 。 MS ー DOS 話 題 の 書 て 、 す 。 売 れ 行 き を み せ C 十 十 の 代 表 的 な 書 籍 に な っ tions 』 (). H), 「 C 十 十 Primer 』 (A. て い ま す 。 今 年 は 本 格 的 に オ プ ジ ェ ク ト 指 向 が 普 及 し そ う て す 。 し か し , オ プ ジ ェ ク W) 。 新 刊 に は TTurbo C 十 十 : A Self- * 最 後 に * Teaching Guide 』 (John Wiley) , fTurb0 ' 89 年 11 月 号 か ら 掲 載 の 続 い た こ の 書 店 レ ト 指 向 の 最 新 情 報 は 洋 書 に 頼 る し か な い の ポ ー ト も 今 回 て 、 終 了 と な り ま す 。 ご 愛 読 あ C 十 十 』 (). W) , TObject-Oriented Turbo が 現 状 て 、 す 。 今 回 は オ プ ジ ェ ク ト 指 向 に 関 り が と う ご ざ い ま し た 。 み な さ ま の 円 満 な Pascal 』 (M&T) , fObject-Oriented Pro す る 既 刊 , 新 刊 を 紹 介 し た い と 思 い ま す 。 コ ン ヒ 。 ュ ー タ ラ イ フ の 指 針 に し て い た だ け gramming for Presentaion Manager 』 (P. Obj ect-Oriented Comcepts- Databases た こ と を 祈 っ て お り ま す 。 H) , 「 lnside Smalltalk V01. I, V01. II 』 (P. & ApplicationJ (Addison Wesley ( 以 下 A. 今 ベ ス ト ( 1990.12.1 ~ 12.29 , 書 泉 グ ラ ン テ ) 1 『 コ ン サ ル タ ン ト の 秘 密 』 ( 共 立 出 版 , 2 , 400 円 ) 2 『 た の し い U N Ⅸ 』 ( ア ス キ ー , 1 , 900 円 ) 3 RAstro Guide 1991 』 ( ア ス キ ー , 3 , 800 円 ) 4 『 UN Ⅸ ユ ー テ ィ リ テ イ ラ イ プ ラ リ make 』 ( 啓 学 出 版 , 1 , 200 円 ) 5 『 C 言 語 を 256 倍 使 う た め の 本 』 ( ア ス キ ー , 1 , 100 円 ) 6 『 PDS 白 書 』 ( 翔 泳 社 , 1 , 500 円 ) 7 『 X68000 マ シ ン 語 プ ロ グ ラ ミ ン グ 入 門 』 ( ソ フ ト バ ン ク , 2 , 800 円 ) 8 『 健 康 ソ フ ト 八 ウ ス 物 語 』 ( ラ デ ィ ク / 星 雲 社 , 1 , 200 円 ) 9 『 入 門 NetWare 』 ( ソ フ ト バ ン ク , 2 , 300 円 ) 10 『 VZ を 256 倍 使 う た め の 本 』 ( ア ス キ ー , 1 , 100 円 ) コ ン サ ル タ ン ト の 技 ア ド ハ イ ス の 人 間 学 秘 密 ・ ・ ワ ・ イ 、 イ ハ ー グ 著 木 村 泉 と 出 版 一 7 ー を OP REPORT 145

月刊 C MAGAZINE 1991年3月号


イ ン ス ト ー ル メ テ ィ ア 選 択 時 の 注 意 Ver. 2. OJ て 、 は , ス モ ー ル , ミ デ ィ ア ム , ラ ー ジ の 3 つ の メ モ リ モ デ ル に 対 応 し て い ま す 。 こ の た め , フ ロ ッ ヒ 。 ー デ ィ ス ク に す べ て の メ モ リ モ デ ル て 、 使 用 て 、 き る よ う に イ ン ス ト ー ル し た 場 合 は デ ィ ス ク は 3 枚 ( シ ス テ ム 用 が 2 枚 , サ ン プ ル 用 が 1 枚 ) に な り ま す 。 Fig. 1 ( 1 ) 参 照 。 ー 記 の イ ン ス ト ー ル て 、 作 成 さ れ た デ ィ ス ク を 使 用 す る 場 合 , リ ン ク を 行 う と き に は 1 枚 目 の デ ィ ス ク と 2 枚 目 の デ ィ ス ク と を 人 れ 替 え な け れ ば な り ま せ ん 。 こ の 不 便 さ を 解 消 す る た め に 2HD の デ ィ ス ク に か ぎ り , 特 定 の メ モ リ モ デ ル 用 の ラ イ プ ラ リ を 選 択 し て , シ ス テ ム 用 の デ ィ ス ク を 1 枚 に ま と め る イ ン ス ト ー ル を 用 意 し て い ま す (Fig. 1 ② 参 照 ) 。 メ モ リ モ デ ル の 指 定 と リ ン ク 対 象 ラ イ フ ラ リ I•. 記 の 操 作 に よ り , シ ス テ ム 用 デ ィ ス ク を 1 枚 に ま と め た も の に は , ラ イ プ ラ リ は 1 種 類 し か 格 納 さ れ て い ま せ ん 。 こ の た め , デ ィ ス ク に 格 納 さ れ て い る ラ イ プ ラ リ の メ モ リ モ デ ル と 異 な っ た メ モ リ モ デ ル を 指 定 し て コ ン パ イ ル し た 場 合 に は , リ ン ク 時 に 結 合 す る べ き ラ イ プ ラ リ が 存 在 し な い と い う エ ラ ー に な り ま す 。 154 C MAGAZINE 1991 3 ル 用 に イ ン ス ト ー ル し た 場 合 に ス モ ー ル ま た は ラ ー ジ メ モ リ モ デ よ く ま ち が え る ケ ー ス と し て , シ ス テ ム ・ ワ ン lnformation from C0mpiler Makers Fig. 2 Power C Ver. 2. OJ メ モ リ モ デ ル 指 定 の オ プ シ ョ ン を 忘 れ る と い う こ と が あ り ま す 。 こ の 場 合 は デ フ ォ ル ト の 指 定 と し て , デ ィ ス ク に ラ イ プ ラ リ の 存 在 し な い ミ デ ィ ア ム メ モ リ モ デ ル が 選 択 さ れ て し ま う た め て 、 す 。 な お , リ ン カ は コ ン パ イ ラ が 出 力 し た オ プ ジ ェ ク ト フ ァ イ ル か ら メ モ リ モ デ ル の 情 報 を 取 得 し て 上 記 の 処 理 を 行 い ま す が , こ の し く み に つ い て は 1991 年 1 月 号 を 参 照 し て く だ さ い Ver. 2. OJ に 対 応 し た 「 PED 」 PowerC 用 の エ デ イ タ と し て 販 し て お り ま す PowerEditor(PE D) が , Power C の Ver. 2. OJ に 対 応 し て 新 し く な り ま し た 。 工 デ イ タ の 中 か ら コ ン パ イ ラ を 起 動 す る 場 合 , 指 定 て 、 き る オ プ シ ョ ン と し て メ モ リ モ デ ル の 選 択 の 項 Ⅱ が 追 加 さ れ ま し た 。 こ れ ま て 、 は , デ フ ォ ル ト の メ モ リ モ デ ル ( ミ デ ィ ア ム メ モ リ モ デ ル が デ フ ォ ル ト と な っ て い る ) 以 外 の メ モ リ モ デ ル を 指 定 す る 場 合 に は 、 , 「 実 行 コ マ ン ド の 引 数 」 の と こ ろ て 、 指 定 す る か , 環 境 変 数 に 登 録 し て お く 方 法 し か な か っ た た め , 不 便 さ が 感 じ ら れ ま し た 。 こ の 度 の 変 史 て 、 独 立 し た オ プ シ ョ ン と し て 指 定 て 、 き る た め , ほ か の オ プ シ ョ ン 同 様 に 使 用 い た だ け ま す 。 な お , コ ン パ イ ル オ プ シ ョ ン の 指 定 を 選 択 し た 場 合 の メ ニ ュ ー 画 面 は , Fig. 2 に 示 す よ う に な っ て い ま す 。 Fig. 1 イ ン ス ト ー ル 時 の メ テ ィ ア 指 定 ( 1 ) 「 2HD 」 あ る い は 「 2DD 」 の 場 合 ・ 1 枚 目 テ ィ ス ク コ ン バ イ ラ テ パ ッ ガ ヘ ッ ダ ・ 2 枚 目 テ ィ ス ク リ ン カ ラ イ プ ラ リ ( 3 モ デ ル ) ・ 3 枚 目 テ ィ ス ク サ ン プ ル プ ロ グ ラ ム ( 2 ) 「 2HDS 」 , 「 2HDM 」 あ る い は 「 2HD 凵 の 場 合 ラ イ プ ラ リ ( S , M , L の う ち 選 択 し た 1 モ テ ル ) リ ン カ ヘ ッ ダ テ パ ッ ガ コ ン バ イ ラ ・ 1 枚 目 テ ィ ス ク ・ 2 枚 目 テ ィ ス ク R レ ジ ス タ を 自 動 割 当 と す る 0 オ プ ジ ェ ク ト を 生 成 す る N コ メ ン ト の ネ ス ト を 許 さ な い Knear fa 「 キ ー ワ ー ド を 有 効 と す る F 自 動 検 出 浮 動 小 数 点 ラ イ ブ ラ リ Power C Generation コ ン ノ ヾ イ ル オ プ シ ョ ン 選 択 時 の PED の メ ニ サ ン プ ル プ ロ グ ラ ム S ス タ ッ ク オ ー / ヾ ー フ ロ ー を チ ェ ッ ク し な い M ミ テ ィ ア ム メ モ リ モ テ ル J 日 本 語 対 応 す る 1 CPU が 8086 T テ パ ッ グ 情 報 を つ け な い . /fa : /mm

月刊 C MAGAZINE 1991年3月号


を 得 る 。 ・ return( cl & 0x0fff ) ; と い う 文 と , return()l 〉 > 4 ) : と い う 文 の 所 在 位 置 を , お 互 い に 逆 に し ま す ( 入 れ 換 え る ) 。 ・ 関 数 writeFATent( ) FAT の オ フ セ ッ ト 位 置 に 新 た な 値 ( 12 ビ ッ ト の リ ン ク 情 報 ) を 書 き 込 む 。 ・ oldval ( oldval & 0Xf000 ) value; と い う 文 と , oldval ( oldval & 0X000f ) ー ( value く く 4 ) ; と い う 文 を , お 互 い に 行 位 置 を 入 れ 換 え ま す 。 と い う わ け て 、 , 複 数 バ イ ト か ら な る 整 数 デ ー タ の , メ モ リ 上 て の 各 バ イ ト の 並 び 順 ( 英 語 て 、 い う 、 、 endian") は , 場 合 に よ っ て は プ ロ グ ラ マ に と っ て の , 大 き な 危 険 な 罠 に な り え ま す 。 昨 年 , 米 議 会 に は , endian を 統 一 す べ し , と い う 法 案 が 提 出 さ れ ま し た 。 こ れ は , い ま 私 が 思 い っ き て 、 書 い た ホ ラ 話 て 、 は あ り ま せ ん 。 TCOMPUTER LANGUAGEJ 誌 の 昨 年 ( ' 90 年 ) 4 月 号 に 報 道 さ れ て い た こ と て 、 す 。 た だ し , こ の 法 案 が 成 立 し た か ど う か は , 現 時 点 の 私 は 知 り ま せ ん 。 94 C MAGAZINE 1 1 3 付 録 デ ィ ス ク 上 の 余 裕 ス ペ ー ス が た つ ぶ 読 め ば わ か る と 思 い ま す 。 ト を , 最 初 , char * ポ イ ン タ と し て 個 々 に て も sizeof 演 算 子 を 使 用 す る ) の 個 々 の バ イ イ ト ,long な ら 4 バ イ ト 以 ー ヒ ー ー い ず れ に し イ ト ( short な ら 2 バ イ ト , int な ら 2 ま た は 4 バ 書 か ざ る を え な い て 、 し よ う 。 そ れ は 複 数 パ チ ン と , そ の 結 果 に 基 づ く 条 件 分 岐 文 を , 場 合 ) , め ん ど う て も endian を 判 定 す る ル ー く 場 合 は ( endian の 違 い が 重 大 な 意 味 を も っ に 移 植 さ れ る 可 能 性 の あ る プ ロ グ ラ ム を 書 な お , endian が わ か ら な い 未 知 の 実 装 系 り あ る こ と を 期 待 し て , 今 月 号 の 付 録 デ ィ ス ク に は , 長 瀬 氏 の 指 摘 に 基 づ い て 改 定 し た dosfat. h と , そ れ に よ っ て 一 応 使 え る よ う に な っ た フ ァ イ ル 復 活 プ ロ グ ラ ム の リ ス ト Fig. 1 長 瀬 さ ん か ら の お 手 紙 前 略 。 ( REV. C ) を 収 め る よ う , 編 集 部 に は お 願 い し て お き ま し よ う ( な お , 今 回 の REV ℃ の 改 訂 て 、 い ち ば ん 苦 労 し た の は , Turbo cver. 1.5 と Ver. 2.0 に お け る , テ キ ス ト ビ デ オ 関 数 C マ ガ ジ ン 12 月 号 「 恥 ず か し な が ら ド ジ リ ま し た ー ー DOS の FAT 操 作 の 続 き 」 を 読 ん で 、 疑 問 に 感 じ た と こ ろ が あ り ま す の で お 便 リ し ま す 。 疑 問 に 思 っ た と こ ろ は 、 FAT の 構 造 の と こ ろ な の で す が 、 0109 の Fig. 4 で は : 0 1 2 3 : 5 6 7 8 9 A B c D E 下 10111213 lFBlFFlFFlmmlmnInn10010plpplqqIqrlrrlssls. に . FAT オ フ セ ッ ト : と 説 明 さ れ て お り ま す が 、 実 際 に は : ク ラ ス タ 番 号 : 8 AT オ フ セ ッ ト : 0 1 2 3 4 5 6 7 8 9 A B c 田 FF 刷 mm m 恤 司 。 引 p 。 司 qq q は 司 s 引 . s に の よ う に な っ て お り 、 。 し か も 、 も っ と 細 か く 説 明 す る と : FAT オ フ セ ッ ト : 0 1 3 2 4 5 ぽ B ぽ F IF F 恤 lm 幻 n2m no Ⅱ 新 D E F 10 11 12 13 ク ラ ス タ 2 に 対 す る リ ン ク 情 報 は m0m1m2 、 3 は nonl れ 2 の よ う に な っ て い ま す 。 具 体 的 に 、 ク ラ ス タ 2 に 対 す る リ ン ク 情 報 が 0 1 2 、 3 に 対 し て が 3 4 5 で あ れ ば : FAT オ フ セ ッ ト : 0 2 1 3 4 5 田 F F ぽ F い 2 は の 3 引 の よ う に な り ま す 。 し た が っ て ↓ 2 バ イ ト 読 み 込 ん だ 場 合 は 、 union( の よ う な 共 用 体 を 作 っ て お き 、 } get—cluster; word 1 ink data; byte real-data[ 2 ] ;

月刊 C MAGAZINE 1991年3月号


最 適 化 て 、 す 。 た と え ば , List 2 に は , ス ペ ー 考 察 し ま す 。 4 を 見 る と , 生 存 期 間 を 示 す 線 が 同 じ 期 間 に ス を 読 み と ば す コ ー ド が 2 か 所 に 存 在 し て い 重 な っ て い る も の と , 重 な っ て い な い も の const ま す 。 こ れ を 別 の 関 数 と し て 抜 き 出 し て , が あ る こ と が わ か り ま す 。 i と j, j と x, x と も と の コ ー ド を 関 数 呼 び 出 し に 置 き 換 え て const は 変 更 て 、 き な い オ プ ジ ェ ク ト を 作 り y は 重 な っ て い ま す が , i と x, i と Y, j と Y は 出 し ま す 。 List 4 の 宣 言 て 、 は そ れ ぞ れ const し ま い ま す ( List 3 ) 。 重 な っ て い ま せ ん 。 の 位 置 が 異 な っ て い る こ と に 注 意 し て く だ こ う す る こ と に よ っ て , 何 度 も 現 れ る 同 生 存 期 間 が 重 な っ て い な い と い う こ と は , さ い 。 コ メ ン ト に 書 い て あ る の は そ れ ぞ れ じ コ ー ド が 1 か 所 に ま と め ら れ ま す か ら , オ 変 数 が 同 時 に 使 用 さ れ る こ と が な い と い う の 宣 言 の 意 味 て 、 す 。 プ ジ ェ ク ト コ ー ド の サ イ ズ は 減 少 し ま す 。 こ と て 、 す か ら , こ の よ う な 条 件 を 満 た し た し か し , 直 接 実 行 て 、 き る コ ー ド を 関 数 呼 び こ れ ら の う ち ci と cpi の 場 合 は 変 数 そ の も 変 数 に は 同 じ メ モ リ を 割 り 付 け る こ と が て 、 出 し に 変 換 し た の て 、 す か ら , 関 数 呼 び 出 し の が const て 、 修 飾 さ れ て い ま す か ら , 初 期 化 き る の て 、 す 。 逆 に 生 存 期 間 が 重 な っ て い る の た び に オ ー バ ヘ ッ ド が か か る こ と を 覚 悟 を 使 っ て 宣 言 と 同 時 に 値 を あ た え て お く 必 変 数 は , そ れ ぞ れ 同 時 に 有 効 な 値 を 保 持 し 要 が あ り ま す 。 そ う し な い と , あ と て 、 ci や cpi し な け れ ば な り ま せ ん 。 て い ま す の て 、 , こ れ ら を 重 ね 合 わ せ る こ と に 代 入 し よ う と し て も , そ れ は エ ラ ー に な は て き ま せ ん 。 C 言 語 に お け る 最 適 化 の 制 御 っ て し ま い ま す 。 こ の よ う に し て 変 数 の 生 死 の 期 間 を 調 べ pci そ の も の は const て 修 飾 さ れ て い ま せ ん て 変 数 を 重 ね 合 わ せ る こ と は , メ モ リ の 使 用 量 を 減 ら す だ け て 、 は な く , 変 数 を レ ジ ス ANSI 標 準 C 言 語 て 、 は キ ー ワ ー ド const と の て 、 pci へ の 代 入 は 許 さ れ ま す 。 し か し , * pci は const int 型 な の て 、 , 次 の よ う な 代 入 は タ に 割 り 付 け る と き に も 少 な い レ ジ ス タ て 、 volatile が 導 入 さ れ ま し た ( 詳 し く は ' 90 年 5 月 ェ ラ ー て 、 す 。 号 参 照 ) 。 実 は コ ン パ イ ラ は こ れ ら の キ ー ワ 最 大 の 効 率 を 上 げ る た め に 使 わ れ ま す 。 ー ド か ら 最 適 化 に つ い て の 情 報 を 得 る こ と *pci 1234 ; ー ニ サ プ レ ー チ ン イ て 、 は , 最 適 化 と の か か わ り に つ い て 考 え が て 、 き ま す 。 て み ま し よ う 。 ま ず , List 5 を 見 て く だ さ こ れ ら の キ ー ワ ー ド と 最 適 化 と の 関 係 に い 。 こ の プ ロ グ ラ ム の 8 行 目 て 、 は z に x * 3 を つ い て 考 え て み ま し よ う 。 ま た , も と も と プ ロ グ ラ ム 中 に 何 度 も 現 れ る 同 じ パ タ ー 代 入 し て い ま す 。 x は const て 、 修 飾 さ れ て い ン の コ ー ド を 抽 出 し , そ れ を サ プ ル ー チ ン 備 わ っ て い た register キ ー ワ ー ド に つ い て も に し て し ま う の が , ミ ニ サ プ ル ー チ ン 化 の ニ サ プ ル ー チ ン す る 前 の リ ス ト Fig. 3 List 1 が 呼 び 出 さ れ た と き の メ モ リ の 様 子 List 2 *func (char *p) Char char while ((c p 十 十 : p = do-someting (P) : while ((c p 十 十 : return (p) ; / * ス ペ ー ス を 読 み と ば す * / ・ \ 0 ' & & isspace(c)) / * 処 理 を し て 進 め た ポ イ ン タ を 返 す * / / * ス ペ ー ス を 読 み と ば す * / ' \ 0 ・ & & isspace(c)) / * 次 の 文 字 を 指 す ポ イ ン タ を 返 す * / / ヾ ラ メ ー タ i , j は ど こ か ( お そ ら く ス タ ッ ク 上 ) に あ る 変 数 x , y も ど こ か ( や は り お そ ら く ス タ ッ ク 上 ) に あ る ニ サ プ ル ー チ ン 化 し た 後 の リ ス ト List 3 *skipspace(char *P) Char char p 十 十 : return (p) : Fig. 4 List 1 に お け る 各 変 数 の 生 存 期 間 / * ス ペ ー ス を 読 み と ば す * / while ()c = (p) ! = ・ \ 0 ・ & & isspace(c)) ③ ④ ① ② *func (char *p) skipspace(p) : p = do-someting (p) : p = skipspace (p) : return (p) : Char / * ス ペ ー ス を 読 み と ば す / * 処 理 を し て 進 め た ポ イ ン タ を 返 す * / / * ス ペ ー ス を 読 み と ば す / * 次 の 文 字 を 指 す ポ イ ン タ を 返 す * / 116 C MAGAZINE 1991 3