リリースノート QA C UNIX 版 Version 4.5.3J 2003/10 10/10 Version Programming Research Limited 1

Size: px
Start display at page:

Download "リリースノート QA C UNIX 版 Version 4.5.3J 2003/10 10/10 Version Programming Research Limited 1"

Transcription

1 リリースノート QA C UNIX 版 Version 4.5.3J 2003/10 10/10 Version Programming Research Limited 1

2 目次 QA C4.5.3J CD-ROM QA C 4.5.3J FLEXlm のインストール LM-HostID の取得 ( ライセンス ファイル取得の手続き ) ネットワーク ライセンス サーバの起動 ネットワーク ライセンス サーバのクライアントとしての操作 flexlmrc ファイル MISRA 対応 解釈 ( パーシング ) プリプロセッサ レイアウト 宣言 / 定義 リテラル 変換 文 式 制御文 データフロー メトリックス 設定 FAQ Programming Research Limited Programming Research Limited 2

3 A. B. C Programming Research Limited 3

4 1. はじめに 本書では QA C ソースコード アナライザ UNIX 版の Version 4.5.3J について記述してあります 本書には ソフトウェアをシステムにインストールする前にお読みいただきたい重要な情報が含まれています 2. QA C4.5.3J CD-ROM の内容 QA C4.5.3J の CD-ROM には以下のファイルが収録されています 同梱されているファイルまたはフォルダ 説明 1. /license_ap.doc QA C ライセンス申請書 (*1) 2. /FLEXlm /enduser.pdf FLEXlm の英語版エンドユーザズガイド 3. /FLEXlm/Readme_sjis.txt FLEXlm の Readme ファイル (SJIS) 4. /FLEXlm/Readme_euc.txt FLEXlm の Readme ファイル (EUC) 5. /FLEXlm/FLEXlm_for_PC.zip FLEXlm PC 版の本体 6. /FLEXlm/FLEXlm_for_Solaris.tar FLEXlm Solaris 版 (7 8 用 ) の本体 7. /FLEXlm/FLEXlm_for_Sol26.tar FLEXlm Solaris 版 (2.6 用 ) の本体 8. /FLEXlm/FLEXlm_for_HP.tar FLEXlm HP 版の本体 9. /QAC-4.5.3J/Docs/ QAC-4.5.3J-PC-ReleaseNotes.pdf 10. /QAC-4.5.3J/Docs/ QAC-4.5.3J-PC-UsersGuide.pdf 11. /QAC-4.5.3J/Docs/ QAC-4.5.3J-UNIX-ReleaseNotes.pdf 12. /QAC-4.5.3J/Docs/ QAC-4.5.3J-UNIX-UsersGuide.pdf QA C PC 版 4.5.3J のリリースノート (PDF 形式 ) QA C PC 版 4.5.3J のユーザーズガイド (PDF 形式 ) QA C UNIX 版 4.5.3J のリリースノート (PDF 形式 ) QA C UNIX 版 4.5.3J のユーザーズガイド (PDF 形式 ) 13. /QAC-4.5.3J/UNIX/QAC_4.5.3J_HP.tar.gz QA C HP 版 4.5.3J インストール用ファイル 14. /QAC-4.5.3J/UNIX/QAC_4.5.3J_Sol.tar.gz QA C Solaris 版 4.5.3J インストール用ファイル 15. /QAC-4.5.3J/PC/setup.exe その他 QA C PC 版 4.5.3J インストール用ファイル 16. /toyo_util/unix/toyo_util_for_unix.tar UNIX 版コマンド解析用ツール (*2) 17. /toyo_util/pc/toyo_util_for_pc.zip PC 用コマンド解析用ツール *1) license_ap.doc は Word 形式のファイルです *2) 15 項の UNIX 版 toyo_util は HP-UX 版 QA C および Solaris 版 QA C の tar ファイル (12 および 13 項 ) にも同梱されています 2003 Programming Research Limited 4

5 3. 動作環境 項目動作環境備考 サポート OS Solaris HP-UX 推奨メモリ 256M バイト以上 一度に解析する解析対象のファイルサイズの合計が 非常に大きい場合は さらに多くのメモリを増設するこ とをお勧めします インストールに必要なディスク容量 約 40M バイト 解析時には 解析結果を保存するための領域が必要になります 十分な空き領域のある環境でご使用下さい 4. QA C 4.5.3J のインストール QA C 4.5.3J のインストールは 以下の手順で行って下さい 1. QA C 4.5.3J をインストールする新しいディレクトリを作成します 既に前のバージョンの QA C がインストールされている場合は QA C 4.5.3J を新しいディレクトリにインストールすることをお勧めします インストールには 約 40 M バイトのディスク容量が必要となります インストール手順の記述の中で QA C をインストールするディレクトリを示すために QACDIR という表記を用います これ以降 QACDIR と記された部分は ディレクトリ名に適宜読み替えて下さい Programming Research Ltd. のツールは /usr/prqa の下に作成したディレクトリ内にインストールすることをお勧めします QA C 4.5.3J の場合は QACDIR が指すディレクトリとして /usr/prqa/qac4.5.3j をお勧めします 2. カレント ディレクトリを QACDIR に移動し 以下のコマンドを使用して QA C のファイルを解凍します プラットフォームに適合する tar ファイルは QA C の CD の QAC-4.5.3J/UNIX ディレクトリ内にあります gunzip -c <tar ファイル名 > tar -xvf - 3. インストール用のスクリプトを 以下のように実行します./install.qac QA C の実行に必要な環境変数の設定とパスの検索をセットアップするための.cshrc と.profile の両スクリプトの例が作成されます C シェルで動作させる場合には 以下のように入力します source.cshrc Bourne シェルまたは Korn シェルでは 以下のように入力します..profile ユーザ自身のホーム ディレクトリから QA C にアクセスしたい場合には.cshrc または.profile の内容を ユーザのホーム ディレクトリ内にある相当する既存ファイルに併合して下さい 2003 Programming Research Limited 5

6 5. ライセンスのインストールインストール 以下に ネットワーク ライセンスのインストールに関する手順を記述します 5.1. FLEXlm のインストール QA C の CD の /FLEXlm ディレクトリから該当する OS の tar ファイルを任意のディレクトリにコピーしてください 本書では /usr/prqa/flexlm に FLEXlm をインストールすることを想定して説明いたします Solaris7 8 用 :FLEXlm_for_Solaris.tar Solaris2.6 用 :FLEXlm_for_Sol26.tar HP 用 :FLEXlm_for_HP.tar tar 形式ファイルを解凍して下さい 以下の 4 つのファイルが現れます ライセンス ユーティリティ プログラム lmutil ライセンス デーモン プログラム lmgrd インストール スクリプト install.sh Programmin Research Ltd. のライセンス デーモン prflexd <tar ファイルの解凍方法 > Solaris の場合 : cd /usr/prqa/flexlm tar xfv FLEXlm_for_Solaris.tar HP の場合 : cd /usr/prqa/flexlm tar xfv FLEXlm_for_HP.tar ライセンス インストール用スクリプト install.sh を実行して FLEXlm ディレクトリ内の全てのユーティリティへのリンクを作成してください 実行例 : /usr/prqa/flexlm/install.sh 2003 Programming Research Limited 6

7 5.2. LM LM-HostID HostID の取得 ( ライセンス ファイルファイル取得の手続手続き ) QA C の CD にある /usr/prqa/flexlm ディレクトリ内にある適合したプラットフォーム用のコマンドを使い lmutil lmhostid を実行すると 以下のように LM-HostID が出力されます 実行例 : /usr/prqa/flexlm>lmutil lmhostid lmutil - Copyright (C) Globetrotter Software, Inc. The FLEXlm host ID of this machine is "00c04f07c7d3" この情報を QA C パッケージに同梱されている QA C/QA C++ ライセンス申請書 にご記入の上 ( 株 ) 東陽テクニカソフトウェア ソリューション QA C / QA C++ サポート係まで FAX してください また QA C/QA C++ ライセンス申請書 と同等の情報を [email protected] に でお送りいただいても ライセンス ファイルを発行いたします 5.2. ネットワークットワーク ライセンスライセンス サーバサーバの起動 サーバの LM-HostID に合った有効なライセンス ファイルが必要となります LM-HostID の取得については 上述の手順をご参照下さい /usr/prqa/flexlm ディレクトリで 以下のコマンドを実行して下さい lmgrd -c < フルパスのライセンス ファイル名 > -l log_file.log ライセンス ファイルには LM-HostID に合った有効なライセンスが登録されています 5.3. ネットワーク ライセンスライセンス サーバサーバのクライアントクライアントとしてのとしての操作 各クライアント マシンでは C シェルで QA C を動作させる場合には.cshrc を Bourne シェルまたは Korn シェルで QA C を動作させる場合には.profile を編集してください.cshrc の編集 : setenv サーバ名 > サーバ名が toyo の場合は setenv と設定します.profile の編集 : PRLDHOST=@< サーバ名 >;export PRLDHOST サーバ名が toyo の場合は PRLDHOST=@toyo ; export PRLDHOST と設定します 2003 Programming Research Limited 7

8 5.4..flexlmrc.flexlmrc ファイル QA C の実行時 ライセンス ファイル名またはサーバ名は 各クライアント マシンの $HOME/.flexlmrc に 以下のエントリとして格納されています PRFLEXlmXD_LICENSE_FILE=@<servername> このファイルは アプリケーションがライセンスを取得する際に path 変数のようにライセンス ファイル名やサーバ名を検索するのに使用されます 2003 Programming Research Limited 8

9 6. 解析の改良点改良点と新機能 CR で始まる番号は PRL 社の管理番号です 6.1. MISRA 対応! CR506: MISRA ルール 54 空の文はそれ自身を一行だけにおかなければならず 同じ行にはその他どんなテキストもおいてはならない : 新しいメッセージ 3141 が コメントのみを伴った空の文に対して出力されます! CR516: MISRA ルール 93 関数形式マクロよりは 関数を使用すべきである : 新しいメッセージ 3429 が出力されます! CR621: MISRA ルール 14 char 型は常に unsigned char か signed char で定義されなければならない : 新しいメッセージ 3625 が 単なる char 型が使用されている全ての箇所で出力されます! CR628: MISRA ルール 74 引数の一部でも識別子が与えられた場合 宣言や定義で使用された識別子は等しくなければならない : 新しいメッセージ 1330 が出力されます! CR662: MISRA ルール 113 構造体 ( または共用体 ) のメンバには全て名前をつけ その名前を経由してのみアクセスしなければならない : 新しいメッセージ 660 が 名前のない構造体メンバに対して出力されます! CR762: MISRA ルール 91 マクロはブロック内で 定義される (#define) と同時に定義を解除 (#undef) されてはならない : 新しいメッセージ 842 が出力されます! CR763: MISRA ルール 111 ビットフィールドは unsigned int 型か signed int 型に対してのみ定義しなければならない : 新しいメッセージ 634 が 単なる int short または char がビットフィールド宣言に使用された場合に出力されます 6.2. 解釈 ( パーシング )! CR662: 入れ子になった名前のない構造体のメンバを指すことを許す言語拡張をサポートしました 新しいメッセージ 662 が出力されます! CR785: -d で設定したマクロでセミコロンを定義した際に発生していたパーシング エラーを修正しました! CR800: for ループの条件式に増分 / 減分演算子がある場合に発生していたパーシング エラーを修正しました! CR807: キャストを含む式や浮動小数点式で初期化された static オブジェクトに対して メッセージ 685 が誤って出力されていたのを修正しました! CR821: 書式指定子 %% に対して メッセージ 160(%s 番目の変換指定子はサポートされていません ) が誤って出力されていたのを修正しました! CR853: セミコロン ( ; ) を含む文字列リテラルが改行文字 ( \ ) の後に続く合法的な記述に対し メッセージ 259( 文字列リテラルに改行文字 (new-line character) が含まれています ) が誤って出力されていたのを修正しました! CR863: Microsoft や Hiware コンパイラに含まれるインライン アセンブラ コードに対応するために 新たに幾つかの形式の構文をサポートできるようになりました! CR884: munch トークンを直接扱うことができる _munch_at を備 2003 Programming Research Limited 9

10 えました! CR885: ビットマップ データ型 ( 言語拡張 ) の識別子を定義するのに使用される. 演算子が ファイル有効範囲 ( スコープ ) 内で解釈できるようになりました! "Munch" 機能の追加により 解析をしない非 C トークンを指定することが可能になりました 使用方法などの詳細はマニュアル / ヘルプを参照してください! 直接の解析を行うために C スタイルの引用符に行番号を埋め込むようにプリプロセスするように拡張されました! long long 拡張型 ( 接尾辞 LL ll) のための字句サポートを拡張しました! ビットフィールドアクセス構文の拡張 (Keil コンパイラの要件 ) をしました! asm と endasm の代わりの ASM と ENDASM を許容するため 拡張の振舞いが改善されました! // コメントの扱いの一貫性に関する拡張がされました C++ 拡張はメッセージ 1011 の生成を抑制し メッセージ 1326 は削除されました! <qualifier> <address> 使用のためのシンタックス拡張を行いました! 精度の損失に関するメッセージ (#4120) の表現の不正確さを修正しました 6.3. プリプロセッサ! CR748: #include filename 文に対して ソースファイルが置かれたディレクトリが最初に検索されなかった点を修正しました! CR796: 波括弧 ( { ) が同じ行にない場合にも _munch_paren が正しく動作するように修正しました! CR816: 複雑なマクロに対してメッセージ 3411( マクロ定義の中に 対になっていない角括弧または括弧があります ) が出力される問題を修正しました! CR864: ## 演算子の誤用が検出された後の 復帰能力を向上しました! CR870: マクロ定義内の特定のキーワードや字句の使用に関するメッセージ群を再編成し 一部は MISRA ルールに対応させました 6.4. レイアウト 3413 このマクロ定義は typedef に置き換えることができるはずです 3414 マクロ定義に記憶域修飾子 %s が含まれています 3428 マクロ定義に型修飾子 %s が含まれています 3412 マクロ定義に {, }, ; またはキーワードが含まれています 3439 マクロはキーワードの再定義に使用してはいけません! CR886: #define で除去された字句に対する桁位置の補正が正しくないためにメッセージ 2200( この行の段付けは上の行より左に寄っています ) が出力される問題を修正しました 2003 Programming Research Limited 10

11 6.5. 宣言 / 定義! CR758:.met ファイル内の <DEFINE> レコードが 連続する暗黙的な関数宣言に対して正しく生成されない問題を修正しました! CR760: メッセージ 3203( 変数 %s を設定しましたが その後使用していません ) がポインタに対して正しく出力されない問題を修正しました! CR813: メッセージ 3672(const ではない関数へのポインタを使用しています ) は typedef に対しては出力されなくなりました このメッセージは 宣言 / 定義のみを対象としています! CR847: メッセージ 3002( 関数 %s() を定義する際に識別子リストと仮引数宣言を分離して記述するのは 旧式の方法です ) は 空の仮引数リストと共に定義された関数に対しては出力されなくなりました! CR848: メッセージ 422/423( 関数呼び出しの実引数の数が そのプロトタイプで示される数より少なすぎます / 多すぎます ) は プロトタイプが明記されている場合以外は出力されなくなりました プロトタイプが明記されていない場合には 既存のメッセージ 3319( 定義での引数の数と異なる引数の数で関数を呼び出しています ) が出力されます! CR855: メッセージ 1305( 広域変数 %s は const と宣言されていますが static とも extern とも指定されていません - C では これは extern を意味します しかし C++ では static を意味します ) が 配列の宣言に対しても出力されるようになりました! CR862: 以下のメッセージについて ファイルまたは関数の終端から定義された位置へと メッセージ出力位置を変更しました 554 static %s() が使われていますが定義が与えられていません 612 オブジェクト %s のサイズが バイトを超えます - プログラムは ISO 規格に適合していません 620 変数 %s は暗黙的に初期化されません サイズが不明だからです 1306 %s に対する複数の一時的定義があります - C では動作しますが C++ では動作しません 3202 ラベル %s: はこの関数では使用していません 削除できます 3203 変数 %s を設定しましたが その後使用していません 3218 ファイル有効範囲にある静的変数 %s は一つの関数からしかアクセスされていません 3408 %s は外部から見えます! CR865: メッセージ 2547( タグ %s を使うことによってよりグローバルな宣言を隠しています ) が union タグや enum タグだけではなく struct タグに対しても出力されるようになりました! CR867: 関数の戻り値の型がないものや return 文が存在しないか正しくないものに対するメッセージが連携して動作するようになり 少ないメッセージ出力で済むようになりました! 戻り値を指定せずに関数が定義された ( int と仮定される ) 場合 : return; を検出するとメッセージ 3113 が出力され return 文が存在しないとメッセージ 3114 が出力されます! 関数が void 型で定義された場合 : return 式 ; を検出するとメッセージ 746 が出力さ 2003 Programming Research Limited 11

12 れます! 関数が void 型以外の型を返す場合 : return; を検出するとメッセージ 1325(C++ との互換性に関する警告 ) とメッセージ 745 が出力され return 文が存在しないとメッセージ 744 が出力されます! 関数内に return; と return 式 ; が混在している場合 更にメッセージ 754 が出力されます! 関数内に複数個の return 文が含まれている場合 メッセージ 2006 が出力されます! CR871: メッセージ 776~779( 内部 / 外部識別子名がユーザ定義 /ISO 限界の文字数の範囲内で一致 ) は 各識別子が検出された最初の 1 回のみ出力されるようになりました! CR871: メッセージ 776 と 778 は コンパイラ パーソナリティに属する -strict オプションをオフにしても抑止されなくなりました これらのメッセージを抑止する場合には メッセージ パーソナリティで抑止する通常の方法を用いて下さい! CR880: メッセージ 3308( %s() は static と宣言されました しかしどこにも定義がありません この宣言は冗長です ) が ヘッダ ファイル内の宣言に対しては抑止されてしまう問題を修正しました! CR881: 新しいメッセージ 3219(static 関数 %s() は この翻訳単位内で使用されていません ) が追加されました! CR883: メッセージ 3210( グローバルな識別子 %s は宣言されましたが使用されていません ) が 構造体の使用されていないメンバに対して 他のメンバが使用されているにもかかわらず出力されてしまう問題を修正しました 6.6. リテラル! CR744: 接尾辞の付いたリテラル定数が誤ったデータ型として解釈されてしまう ( 例 : unsigned int のはずが long ) 問題を修正しました! CR798: メッセージ 3324( 符号無しの値は常にゼロかゼロ以上です このテストは常に真になります ) が 符号無しの値をゼロと比較する際に誤って出力されていた問題を修正しました! CR809: (QA C で解釈をサポートするようになった )2 進数定数に対し 新しいメッセージ 246(2 進数定数は一部のコンパイラでのみ使用できます ) が追加されました.! CR818: 新しいメッセージとして 文字列リテラルの直接使用に対するもの ( メッセージ 3122) と文字定数の直接使用に対するもの ( メッセージ 3123) が追加されました! CR861: ビットフィールドのサイズを定義するのに使用される定数に対してはメッセージ 3120 は出力されなくなり この状況を検出するために 新しいメッセージ 3131( ビットフィールドの大きさの指定に %s が直接使用されています ) が追加されました! CR882: int 型以外の定数に対して メッセージ 1271(int 型以外の式を使用しても 列挙定数の型は変更されません ) が出力されない問題を修正しました 6.7. 変換! CR611: 符号無しデータの汎整数拡張に関係する式に対して メッセージ 4130( 符号付きデータに対するビット単位の演算は未定義の結果になります ) の出力を抑止するように改良しました 2003 Programming Research Limited 12

13 ! CR725: メッセージ 3892( 明示的なキャストは他の型への暗黙的なキャストです ) が void * 型にキャストされた式への代入や比較に対しては出力されなくなりました! CR739: 符号無しデータの汎整数拡張に関係する式に対して メッセージ 502( 符号付きデータに対する右シフトは 算術型と論理型の両方の可能性があります ) の出力を抑止するように改良しました! CR679: 関数呼び出しの実引数が一致しない状況が検出された場合 以下の新しいメッセージが出力されます 1331: 実引数の型か個数が この関数の前の使用時と異なります 1332: 実引数の型か個数が この後で見つかる関数プロトタイプと異なります 1333: 実引数の型か個数が この後で見つかる関数定義と異なります! CR829: 整数型と浮動小数点型との間の暗黙の変換に関するいくつかの問題が解消されています ( メッセージ 3700~ ~4031)! CR843: 符号付きデータと符号無しデータとの間の暗黙の変換に関するいくつかの問題が解消されています ( メッセージ 3700~ ~4031)! CR845: 単なる char データが関係する暗黙の変換に関するいくつかの問題が解消されています ( メッセージ 3700~ ~4031)! CR851: 汎整数拡張と実引数拡張について完全な範囲で識別するための新しいメッセージが導入されました 既存のメッセージ 2100, 2101 と新しいメッセージ 2102~2107 が汎整数拡張を扱い メッセージ 2110~2118 がデフォルトの実引数拡張に対して出力されます! CR856: 浮動小数点定数のバランシングに関係する式において メッセージ 1262 が正しく出力されない問題を修正しました! CR858: 新しいメッセージ 1274/1275( 接尾辞が付いていない / 付いた浮動小数点型リテラルが 他のオペランドの暗黙的なキャストを引き起こします ) が追加されました! CR858: 新しいメッセージ 1276( 整数型リテラルが 代入の前に暗黙的に浮動小数点型へキャストされます ) が追加されました! CR859: メッセージ 1260( 整数型リテラルが 暗黙的に浮動小数点型へキャストされます ) は 明示的なキャストに対しては出力されなくなりました! CR874: 暗黙的キャストに関するメッセージ (3700 番台 ) が リテラル定数の変換に関するメッセージ (1250~1276) と重複する場合には出力されなくなりました 6.8. 文! CR695: メッセージ 402( 副作用完了点の間で %s が変更され アクセスされています - 評価の順番は未定義です ) が 括弧付きの代入 ( (a) = a; ) に対して正しく出力されない問題を修正しました! CR695: メッセージ 402( 副作用完了点の間で %s が変更され アクセスされています - 評価の順番は未定義です ) が 配列型の実引数が関係する式の一部で正しく出力されない問題を修正しました! CR747: メッセージ 3217( ローカル変数のアドレスがそのメモリが開放された後も維持される静的変数に代入されています ) は 広域変数から関数の static 変数への代入時には 2003 Programming Research Limited 13

14 出力されなくなりました! CR788: メッセージ 3112( この文は何の副作用もありません - 削除できます ) は volatile オブジェクトに対しては出力されなくなりました! CR839: メッセージ 404( 副作用完了点の間で 2 つ以上のデータ アイテムが変更されるかもしれません - データがオーバーラップすると危険です ) が メッセージ 402( 副作用完了点の間で %s が変更され アクセスされています - 評価の順番は未定義です ) のかわりに誤って出力される問題を修正し メッセージ 404~406 は廃止されました 6.9. 式! CR722: 配列終端の 1 つ先の要素アドレスを取得した場合には メッセージ 3680( 配列の領域外を指しています ) は出力されなくなりました このアドレスの内容を参照した場合には 新しいメッセージ 3683( 配列の終端の 1 つ先の要素の位置を指しています ) がその危険性を指摘します! CR761: メッセージ 3344( 値のテストは明示的に行うべきです ) が 条件演算子 (? : ) の最初のオペランドに対しても出力されるようになりました! CR789: 新しいメッセージ 4131( 符号付きのオペランドを左シフトしています ) が追加されました! CR790: メッセージ 500( シフト演算子の右オペランドが負の値です - これは定義されていません ) とメッセージ 501( シフト演算子の右オペランドが大きすぎます - これは定義されていません ) が正しく出力されない問題を修正しました! CR797: メッセージ 4130( 符号付きデータに対するビット単位の演算は未定義の結果になります ) が signed short 型に対しても出力されるようになりました! CR838: メッセージ 556( 代入の左オペランドは変更可能なオブジェクトでなければなりません ) が ポインタを介して定数を変更しようとした場合にも出力されるようになりました! CR873: メッセージ 3322( 否定! のオペランドが定数です ) が #define TRUE (!FALSE) のような定数 0 または 1 に対しては出力されなくなりました! CR875: メッセージ 4108/4109( 論理演算子の左側 / 右側のオペランドが算術式です ) と 4111/4112( 関係演算子の右側 / 左側のオペランドが論理式です ) が オペランドとして式だけでなく単純な変数に対しても出力されるようになりました! CR875: 新しいメッセージ 4113( 関係演算子の両側のオペランドが論理式です ) が追加されました 制御文! CR650: for ループの増分式で使用されている変数がループ本体の中で初期化されている場合に メッセージ 3321( 変数 %s は この時点では設定されていないかもしれません ) が誤って出力されてしまう問題を修正しました! CR724: ループ制御変数に対するチェック (2460 番台のメッセージ ) が 構造体の要素に対しては出力されなくなりました! CR815: switch 文の case ラベルの後に空のブロックがある場合 そのブロックの後の 次の case の前にある行で メッセージ 3201( この文には到達できません ) が誤って出力されてしまう問題を修正しました 2003 Programming Research Limited 14

15 ! CR819: メッセージ 2003( 空でない case は明示的な break で終わるべきです ) が switch 文の default ラベルに対しては出力されない問題を修正しました データフロー! CR787: メッセージ 3321( 変数 %s は この時点では設定されていないかもしれません ) が 共用体のメンバに対して誤って出力されてしまう問題を修正しました! CR850: メッセージ 3204( 変数 %s を 1 度しか設定していません - それが決して変わらないことを示すために const を使用することを考慮するべきです ) が 定数値による代入の場合にのみ出力されるようになりました メトリックス! CR836: STCDN( コメント密度 ) メトリックスが ファイル内のどの位置にあるコメントをカウントするかの設定に応じて正しく算出されるようになり コメントのカウント対象を設定するオプション -comment が アナライザ パーソナリティに加わりました 設定! CR699: 新しい設定オプション (-intrinsictype) で size_t, ptrdiff_t, wchar_t の各々の実装定義型のサイズを指定できるようになりました これらの実装定義型の設定がソースコード内の typedef と矛盾する場合には 新しいメッセージ 40~42 が出力されます! CR824: ユーザが設定したメトリックス境界値を -threshold オプションで設定できるようになりました 境界値を超えた場合には 予め指定したユーザ メッセージまたは新しいメッセージ 4700( メトリックス %s の値が境界値を超えています ) が出力されます! 現在の qac のパラメータを明らかにするための新規オプション (-set+) が追加されました! UNIX と PC の qacmet.txt ファイルをマージしました! 解析後の処理の構成へ パーソナリティ設定を示す %P を追加しました 2003 Programming Research Limited 15

16 7. インターフェースの改良点改良点と新機能 CR で始まる番号は PRL 社の管理番号です! QA C の PC 版との機能と用語の統一性を向上するため メニューの配置を変更しました 以下に 一部の例を示します o オプション メニュー項目を 構成 に変更しました o サブ プロジェクト は フォルダ として参照されるようになりました o プロジェクトの編集 を フォルダ パラメータ に変更しました o フォルダ パラメータ ダイアログからパーソナリティ ファイルを編集するためのショートカット ボタンを新設しました o 新しいオプションとして プリプロセス済みソースの表示 を追加しました o 新しいオプションとして.met ファイルの表示 を追加しました o ポップアップメニュー [ 変更をサブフォルダへ反映 ] によって フォルダ設定の変更を全サブフォルダへ反映させることが可能になりました o メインメニュー項目の配置と構成を改善しました o errdsp と prjdsp で出力ファイルの名前指定をするための新しいオプション -file が追加されました! パーソナリティ ファイルの位置を フォルダ パラメータを指定することで宣言することができるようになりました! 出力ファイルのディレクトリ位置が アナライザ パーソナリティでなく フォルダ パラメータとして指定できるようになりました QA C の以前のバージョンで生成されたプロジェクトを読み込んだ場合は 出力ファイル パスが. に設定されます! プロジェクトレベルの構成と一般の構成を変更しました! メッセージ パーソナリティ : o メッセージ パーソナリティにおける抑止するメッセージの表示方法を改善し リスト ボックスではなくツリー構造にしました o ヘルプ ファイルの位置の指定が -usrpath で設定できるようになりました o MISRA Compliance Module が メッセージ パーソナリティ ファイルから直接設定できるようになりました o 解析後の処理が GUI から設定できるようになりました o 抑止されたメッセージ オプション または選択されたメッセージ オプションとしての保存を受け付けることができるようになりました o パーソナリティ編集ダイアログの [ 別名保存 ] ボタンにより 編集中のパーソナリティを別の名前で保存できるようになりました! アナライザパーソナリティ : 2003 Programming Research Limited 16

17 o ユーザ定義のメトリック境界値を指定できるようになりました o #pragma ブロックの設定が コンパイラ パーソナリティからアナライザ パーソナリティに移されました o 出力パスの設定が アナライザ パーソナリティからフォルダ パラメータに移されました o アナライザパーソナリティ項目のレイアウトを変更しました (C456) o マクロ定義オプション ( アナライザ / コンパイラパーソナリティ ) はクォーテーションで囲まれます ( 例 -D sfr=unsigned int ) (C696)! コンパイラ パーソナリティ : o システム ヘッダの設定が アナライザ パーソナリティだけでなくコンパイラ パーソナリティでもできるようになりました o #pragma ブロックの設定が コンパイラ パーソナリティからアナライザ パーソナリティに移されました o 型のサイズとアライメントを設定する機能が向上しました o マクロ定義オプション ( アナライザ / コンパイラパーソナリティ ) はクォーテーションで囲まれます ( 例 -D sfr=unsigned int ) (C696)! カスタム レポート : o 新しい機能で 構成 - オプション メニューで指定します o レポート メニューから起動します o 構成のオプションにカスタムレポートセクションを追加し レポートメニューに追加しました! 新しいヘルプ オプション : o メッセージ ヘルプと C 言語ヘルプが加わりました! 関係図は全てのインクルードされたファイルと連結 マージされるようになりました! 関係図でファンイン / ファンアウト機能が拡張されました! 外部の HTML ブラウザが以下の表示用に設定できるようになりました o ヘルプ ページ o メッセージの説明 o 宣言のクロス チェック o 警告リスト レポート o カスタム レポート 2003 Programming Research Limited 17

18 8. その他の改良点改良点と新機能 CR で始まる番号は PRL 社の管理番号です! CR1023 絶対パスで指定されたインクルード ファイルの検索に失敗する問題を修正しました! CR1033 パーソナリティの定義を編集すると -D オプションのダブル クォーテーションが外れてしまう問題を修正しました! CR1071: enum への int でキャストした代入がある場合に 解釈に失敗していた問題を修正しました! CR1092: 環境変数 $VALUE が プロジェクト ファイルで使用できるようになりました! CR1093:.qacrc ファイルを扱う能力が向上しました! CR1094: デモグラフィック ブラウザに以下の変更を加えました o グリッド線が追加されました o バーが存在しなくても 範囲が表示されるようになりました o 範囲を示す % の値が 空のバーを表示するように更新されました o タイトルが.prm ファイルから読み込まれるようになりました o qac.met が.kiv ファイルの代わりに使用されるようになりました! CR1094: メトリックス ブラウザに以下の変更を加えました o デモグラフィック ファイルが メトリックスから生成されるようになりました o 関数構造図にジャンプできるようになりました o 指定したメトリックに対して タイトル バーが追加されました o メニューが PC 版のメニューに合わせて変更されました! CR1095: パーソナリティ ダイアログ ボックスの構成を改善するために タブが追加されました! CR1095: パーソナリティ ダイアログ ボックスのサイズが変更可能になりました! CR1152: ステータス ウィンドウの機能向上で 解析時間が短縮されました GUI から各ファイルの解析時にプロジェクト内の全ソースファイル.met/.err ファイルを誤ってオープンしていたのを修正しました! CR1170: -forceinclude オプションで指定された追加インクルード ファイルに対して #include パス指定に関するメッセージが出力されてしまう問題を修正しました! CR1172: 前処理指令の式の評価が誤っていた問題を修正しました! CR1174: インライン アセンブラ文 asm() が或る状況下で解釈の誤りを引き起こす問題を修正しました! CR1177: enum を返す関数へのポインタを指す場合に解釈が異常終了してしまう問題を修正しました 2003 Programming Research Limited 18

19 ! 以前のバージョンで使用されていたライセンス機構が 新しく FLEXlm ライセンス ソフトウェアに置き換えられました 2003 Programming Research Limited 19

20 9. 既知の問題 NO OS LANG 問題内容対策 プロトタイプ宣言されている行より前に定義されている関数で プロトタイプ宣言の関数が使用されている場合に 失敗 : 未定義の反応 ( プリプロセス中断 ) となります 不具合として PRL に報告いたしましたが 残念ながら現時点では回避することができません 1 全プラットフォーム SJIS/ EUC 例 : 関数 boo は 5 行目で宣言されていますが 3 行目で関数 foo が関数 boo を呼び出しています 1:void foo(void) 2:{ 3: boo(); 4:} 5:int boo(void); フォルダ名やパス名に 0x8ea1 ~ 0x8edf までの 63 種類の文字を使用すると QAC は解析を失敗します 不具合として PRL に報告いたしましたが 残念ながら現時点では回避することができません 2 全プラットフォーム SJIS 具体例 : 治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈 恐れ入りますが 0x8ea1 ~ 0x8edf までの 63 種類の文字をフォルダ名やファイル名に使用しないで下さい 3 UNIX 全般 SJIS/ EUC オンラインヘルプで日本語のヘルプを表示すると文字化けをおこす場合があります GUI のヘルプブラウザで文字化けが報告されています EUC の場合 ォ や 制 が文字化けします 例 : デフォルト デフェ c) ルト 制御 凄 c) など SJIS の場合 か や 見 が文字化けします 恐れ入りますが 外部の HTML ブラウザをご使用ください 設定は以下の通りです 1.xqac コマンドで QAC の GUI を起動する 2. プルダウンメニュー 構成 -> オプション -> HTML ブラウザの指定 を選択して ご使用の HTML ブラウザの起動コマンドを入力してください 2003 Programming Research Limited 20

21 NO OS LANG 問題内容対策 4 UNIX 全般 SJIS/ EUC 表示 -> 関数メトリックス 表示 -> ファイルメトリックス の操作で表示されるメトリックブラウザのプルダウンメニューと画面右上に表示されるメトリックス名が英語で表示されます EUC 用と SJIS 用の qacmet.txt を ロケールに合わせて英語版の qacmet.txt と入れ替えると日本語表示できます メトリックス表示はデフォルトで英語です メトリックス名等を日本語表示したい方はお手数ですが 以下の手続きを実施してください 1. ご使用になるロケールを決定してください QA C では ロケール毎の qacmet.txt を用意しています EUC 用の qacmet.txt は qacmet.jp.euc.txt です SJIS 用の qacmet.txt は qacmet.jp.sj.txt です 2.$QACBIN へチェンジディレクトリしてください 3.qacmet.txt を qacmet.txt.org にリネームしてください 4.qacmet.jp.euc.txt または qacmet.jp.sj.txt を qacmet.txt にリネームしてください 5. ファイル名の変更が終了したら QA C を起動してください 6 UNIX 全般 SJIS/ EUC デモグラフィック画面で タイトルとメニュー内のメトリックス名は英語で表示されます QA C4.5.3J のデモグラフィック画面のタイトルは英語で表示されます 7 UNIX 全般 SJIS/ EUC GUI のプルダウンメニュー レポート から選択で作成されるレポートは英語で表示されます 警告リスト 未使用外部変数 識別子宣言 近似名の解析 外部クロスリファレンス COCOMO コストモデル カスタム レポートなど QA C4.5.3J のレポート機能はすべて英語での提供となります 8 UNIX 全般 SJIS SJIS ロケールで UNIX 版 QA C の v_callcheck を実行した出力のエラーメッセージが文字化けします ただし 警告メッセ - ジは文字化けしません この問題は GUI でもコマンドラインでも発生します 不具合として PRL に報告いたしましたが 残念ながら現時点では回避することができません 2003 Programming Research Limited 21

22 10. FAQ 集 NO OS LANG 質問対策 1 UNIX 全般 SJIS/ EUC 外部エディタを設定しましたが 日本語を表示できません QA C は外部エディタ起動時 xterm を使用しています そのため 起動された外部エディタは日本語を扱えません 日本語を正しく表示させるためには $QACBIN/Xqac を編集して日本語を扱えるターミナルを起動するように変更してください 編集個所は Xqac の 1 行目です Xqac*app_xterm: xterm<- 修正 OS により使用している日本語ターミナルがことなるため ご使用の環境にあったターミナル起動コマンドを入力してください 2 HP-UX SJIS/ EUC 正常に印刷できません プリンタの機種によっては特殊なオプションを追加しなければならない場合があります プリンタの機種にあわせた特殊なオプションを x_print.sh スクリプトの lp コマンドのオプションに追加してください 詳細は [email protected] にお問い合わせください 3 全プラットフォーム SJIS/ EUC 旧バージョンの解析オプションファイルを使用して解析を実施しましたが エラーになりました 解析オプションの指定で 値の設定を必要とするオプション (+,- 以外の設定が必要なオプション ) では オプションと設定値の間にスペースを入れることが必須になりました QA C4.5.x より以前のバージョンで使用していた QA C 解析用オプション設定ファイルをご使用のユーザは オプションと設定値の間に空白を挿入してください 4 全プラットフォーム SJIS/ EUC ライセンスが取得できないため QA C が使用できません ライセンスサーバとクライアントのマシンタイムが極端に異なる ( 約一日以上 ) 場合 ライセンスを取得できなくなります ライセンスサーバとクライアントマシンのマシンタイムを合わせてください 2003 Programming Research Limited 22

23 NO OS LANG 質問対策 5 全プラットフォーム SJIS/ EUC QA C の旧バージョンと同じメッセージグループを使用して解析したい QA C4.5.3J から メッセージのグループが変わりました QA C4.x のバージョンと同じメッセージグループを使用したい場合は qac.usr.jp.sj.mcm または qac.usr.jp.euc.mcm を ユーザメッセージファイルとして設定してください このファイルは QA C4.5.3J をインストールしたディレクトリの下の bin にあります ユーザメッセージファイルの設定方法は QA C ユーザーズガイド (QAC4.5.3J/Docs/QAC J-UNIX-UsersGuide.pdf) の付録 B 構成オプションの -usrpath 及び -usrfile をご参照ください 2003 Programming Research Limited 23

24 11. 株式会社東陽テクニカテクニカへのおへのお問合問合せ Programming Research 日本国内でのお問合せについては 東陽テクニカへお願いします 株式会社東陽テクニカソフトウェア ソリューション 郵便番号 住所 東京都中央区八重洲 電話 FAX ( 営業窓口 ) [email protected] ( サポート窓口 ) [email protected] 12. Programming Research Limited へのお問合問合せ 以下に示す Programming Research Ltd. の本社に直接お問合せいただくこともできます 電話 +44 (0) FAX +44 (0) [email protected] 13. 保証の免責 和文 : Programming Research Ltd. では 作成時に細心の注意を払って本書を正確に記述することに努めておりますが 本書内の誤りや欠落に関する責任は負いかねます また 本書内の記述通りに製品が動作することを表現かつ意味する保証書として作成された文書ではないことをお断りしておきます 英文 : The staff of Programming Research Ltd. have taken due care in preparing this document which is believed to be accurate at the time of printing. However, no liability can be accepted for errors or omissions nor should this document be considered as an expressed or implied warranty that the products described perform as specified within Programming Research Limited 24

25 14. 著作権について 和文 : 本書には著作権があり 全体または一部を問わず どのような方法 ( 電子的またはその他 ) によっても Programming Research Ltd. の文書による事前の承諾なしには 複製 再生 公開 転記 翻訳 縮小を行うことはできません 英文 : This document is copyright and may not, in whole or in part be copied, reproduced, disclosed, transferred, translated, or reduced to any form, including electronic medium or machinereadable form, or transmitted by any means, electronic or otherwise, unless Programming Research Ltd. consents in writing in advance. 15. 商標 QA C++, QA Fortran, QA Manager は Programming Research Ltd. の商標です MISRA は MISRA Consortium を代表して運営する The Motor Industry Research Association の登録商標です PR:QA と PR:QA ロゴは Programming Research Ltd. の登録商標です QA C, Microsoft と Windows は Microsoft Corporation の登録商標です UNIX は UNIX System Laboratories, Inc. の登録商標です 本書内に示した他の全ての製品やサービスには それらを販売する企業で選定された商標 サービスマーク 製品名が含まれます 2003 Programming Research Limited 25

26 付録 A. 追加されたされたメッセージ 警告番号メッセージ 40 size_t の定義が設定された型と異なります 41 ptrdiff_t の定義が設定された型と異なります 42 wchar_t の定義が設定された型と異なります 180 [S] 変換指定子 %s に ll を使用することは ISO C では正当ではありません 進数定数は一部のコンパイラでのみ使用できます 277 符号無しのキャストを負の値に対して行っています 310 異なるポインタ型へのキャストです 進定数の使用は推奨されていません 428 おそらく関数に () を付け忘れています 488 ポインタ算術を行っています 551 代入演算子の左オペランドにキャストをしてはなりません 634 ビットフィールドは unsigned または signed として明示的に宣言するべきです 660 構造体 / 共有体のメンバーに名前がありません 662 名前無しの構造体の要素にアクセスするために 拡張された構文を使用しています 689 初期化子が飛び越されるか 全く使用されていない可能性があります 693 構造体初期化子に オプションの { がありません 694 配列初期化子に オプションの { がありません 695 sizeof に与えた型が malloc のキャストに使われている型と適合しません 696 malloc された大きさが ポインタの指す型の大きさより小さいです 697 malloc されたデータの大きさは示された型の大きさの積として正しい値になっていません 722 前の列挙定数は 明示的に値が代入されました 723 この列挙子並びでは なにも初期化しないか 最初だけ初期化するか 全てを初期化してください 769 break 文は switch 文の中でのみ使用されるべきです 770 continue 文は使用するべきではありません 780 %s と名づけられた識別子は他の名前空間でも宣言されています 832 #include 前処理指令の中のマクロ代替です 838 ファイルは既にトップレベルでインクルードされています 839 ファイルは前の include の中でインクルードされました 841 プログラミング標準の中には #undef の使用を推奨していないものがあります 842 マクロは ブロック内で #define したり #undef したりしないで下さい 861 <%s> の内容はソースの中で参照されません 862 "%s" の内容はソースの中で参照されません 878 ワイド文字または文字列リテラルを使用しています 880 [U] # と ## 演算子の評価の順序は未定義です 881 [U] 複数の ## 演算子の評価順序は未定義です 889 既に #undef されている識別子を #undef しています 890 既に ( ネストされた #if で )#undef されている識別子を #ifdef しています 891 既に #undef されている識別子を #ifdef しています 906 [U] 基本ソース文字集合内に無い文字が使われています 1018 [S] 接尾語 'LL' は ISO C に対する拡張仕様です 2003 Programming Research Limited 26

27 警告番号メッセージ 1019 [S] address' は ISO C ではサポートされていません 1020 ' typeof ' は正当な ISO C の字句 ( トークン ) ではありません 拡張として扱われます 1021 式の中の文は ISO では有効ではありません 拡張とみなされます 1022 ' alignof ' は ISO C 字句として有効ではありません 拡張とみなされます 1023 [C] 関数型に対する ' alignof ' は違法です 1024 [C] 不完全型に対する ' alignof ' は違法です 1025 [C] ビットフィールドに対する ' alignof ' は違法です 1026 [S] この '@ word' は無視されました 1250 接尾辞が付いていない整数型リテラルが 他のオペランドの暗黙的なキャストを引き起こします 1251 接尾辞が付いた整数型リテラルが 他のオペランドの暗黙的なキャストを引き起こします 1252 接尾辞が付いた整数型リテラルが 暗黙的に他の型へキャストされます 1253 接尾辞が付いていない整数型リテラルが 暗黙的に他の型へキャストされます 1254 リテラルの接尾辞が 整数定数の結果の型と一致しません 1255 接尾辞が付いていない整数型リテラルが int 型ではありません 1256 接尾辞が付いた整数型リテラルが 代入の前に暗黙的にキャストされます 1257 接尾辞が付いた整数型リテラルが 代入の前に暗黙的により小さな型へキャストされます 1258 接尾辞が付いた整数型リテラルが 明示的に他の型へキャストされます 1259 接尾辞が付いていない整数型リテラルが 明示的に他の型へキャストされます 1260 整数型リテラルが 暗黙的に浮動小数点型へキャストされます 1261 接尾辞が付いた浮動小数点型リテラルが 暗黙的に他の型へキャストされます 1262 接尾辞が付いていない浮動小数点型リテラルが 暗黙的に他の型へキャストされます 1263 浮動小数点型リテラルは他の整数型オペランドの暗黙的なキャストを引き起こします 1264 接尾辞が付いた浮動小数点型リテラルが 代入の前に暗黙的にキャストされます 1265 接尾辞が付いていない浮動小数点型リテラルが 代入の前に暗黙的にキャストされます 1266 浮動小数点型リテラルは代入の前に整数型へキャストされます 1267 接尾辞が付いた浮動小数点型リテラルが 明示的に他の型へキャストされます 1268 接尾辞が付いていない浮動小数点型リテラルが 明示的に他の型へキャストされます 1269 浮動小数点型リテラルが 明示的に整数型へキャストされます 1271 非 int 型の式を使用しても 列挙定数の型は変更されません 1272 数字のリテラルの先頭にゼロを付けてもそれ自身の型に影響を与えません 1273 リテラル定数が 意図した型よりも大きすぎます 1274 接尾辞が付いていない浮動小数点型リテラルが 他のオペランドの暗黙的なキャストを引き起こします 1275 接尾辞が付いた浮動小数点型リテラルが 他のオペランドの暗黙的なキャストを引き起こします 1276 整数型リテラルが 代入の前に暗黙的に浮動小数点型へキャストされます 1330 関数定義で使用されている仮引数識別子が 関数プロトタイプのものと異なります 1331 実引数の型か個数が この関数の前の使用時と異なります 1332 実引数の型か個数が この後で見つかる関数プロトタイプと異なります 1333 実引数の型か個数が この後で見つかる関数定義と異なります 1400 列挙型に無い列挙定数と等価比較をしています 1401 渡された実引数は列挙型に無い列挙定数です 1402 列挙型に無い列挙定数の代入です 1403 列挙型に無い列挙定数が返されています 2003 Programming Research Limited 27

28 警告番号メッセージ 1404 列挙型に無い列挙定数を比較しています 1410 列挙型が期待されている所でリテラルと等価比較をしています 1411 列挙型が期待されている所でリテラルが実引数として渡されています 1412 列挙型が期待されている所でリテラルが代入されています 1413 列挙型が期待されている所でリテラルが返されています 1414 列挙型が期待されている所でリテラルが比較されています 1420 異なる型の列挙オブジェクトとの等価比較をしています 1421 異なる型の列挙オブジェクトが実引数として渡されています 1422 異なる型の列挙オブジェクトの代入です 1423 異なる型の列挙オブジェクトが返されています 1424 異なる型の列挙オブジェクトの比較をしています 1431 列挙型が期待されていない所で列挙型が実引数として渡されています 1432 列挙型を非列挙型へ代入しています 1433 列挙型を非列挙型へ返しています 1440 列挙型と非列挙型を等価比較しています 1441 列挙型が期待されている所で非列挙型を実引数として渡しています これは値域を超える可能性があります 1442 非列挙型を列挙型へ代入しています これは値域を超える可能性があります 1443 非列挙型を列挙型へ返しています これは値域を超える可能性があります 1444 非列挙型と列挙型の比較です 1460 switch 文の名札の値である %s は列挙型に含まれていません 1461 値は列挙型にありませんが 型の列挙定数をビット単位の OR 演算しています 1470 列挙定数ではなくリテラルが列挙型の switch 式で使用されています 1472 case 名札が異なる列挙型に属しています 1473 : 演算子のオペランドは異なる列挙型です 1474 列挙体の値に対してビット単位の演算を行っています 1475 列挙型の値の取り得る範囲を考えると このテストは常に真になります 1476 列挙型の値の取り得る範囲を考えると このテストは常に偽になります 1477 列挙型のオブジェクトは非シンボリック名のゼロと暗黙的に比較されています 1478 ゼロ値を持たない列挙型のオブジェクトが暗黙的にゼロと比較されようとしています 1479 列挙されたオブジェクトに算術が行われています 1480 ビット単位の演算子のオペランドは異なる列挙型です 1481 単項演算子が列挙型へ適用されています 1482 列挙型へのキャスト式はこの型で表示される表現できる範囲の値を持たない可能性があります 1483 列挙オブジェクトまたは列挙定数が旧式のスタイルの関数宣言の実引数として渡されています 2102 汎整数拡張 : unsigned char は unsigned int に拡張されます 2103 汎整数拡張 : unsigned short は unsigned int に拡張されます 2104 汎整数拡張 : signed char は signed int に拡張されます 2105 汎整数拡張 : signed short は signed int に拡張されます 2106 汎整数拡張 : 単なる char は signed int に拡張されます 2107 汎整数拡張 : 単なる char は unsigned int に拡張されます 2110 デフォルトの引数拡張 : unsigned char は signed int に拡張されます 2111 デフォルトの引数拡張 : unsigned short は signed int に拡張されます 2003 Programming Research Limited 28

29 警告番号メッセージ 2112 デフォルトの引数拡張 : unsigned char は unsigned int に拡張されます 2113 デフォルトの引数拡張 : unsigned short は unsigned int に拡張されます 2114 デフォルトの引数拡張 : signed char は signed int に拡張されます 2115 デフォルトの引数拡張 : signed short は signed int に拡張されます 2116 デフォルトの引数拡張 : 単なる char は signed int に拡張されます 2117 デフォルトの引数拡張 : 単なる char は unsigned int に拡張されます 2118 デフォルトの引数拡張 : float は double に拡張されます 2461 制御変数 %s はブロック有効範囲を持ちません 2462 制御変数 %s はこの for ループ式で初期化されていません 2463 制御変数 %s は増分式に現れません 2464 制御変数 %s はループヘッダで 2 度変更されています 2465 ループが 1 回しか実行されません 2466 制御変数は繰返しが行われないことを示唆しています 2467 制御変数 %s は ループの内側で変更されません 2468 制御変数 %s は ファイル有効範囲を持ちますが ループの内側で変更されません 2469 ループ本体の中で 制御変数 '%s' が変更されています 2470 ループの制御変数 %s の制御変数のアドレスを得ています 2471 ループの制御変数を推測することができません 2472 ループ制御変数が複数ある可能性があります 3003 このトークンは疑わしい NULL ポインタ定数です 3131 ビットフィールドの大きさの指定に %s が直接使用されています 3140 コメントのない空の文が それ自身だけで 1 行に置かれています 3141 空の文は それ自身だけを 1 行に置くべきです 3216 代入されるオブジェクトの有効範囲が代入されるオブジェクトの有効範囲よりもより制限されています 3217 ローカル変数のアドレスがそのメモリが開放された後も維持される静的変数に代入されています 3218 ファイル有効範囲静的変数, '%s', は一つの関数からしかアクセスされていません 3219 static 関数 '%s()' は この翻訳単位内で使用されていません 3344 値のテストは明示的に行うべきです 3404 *p++ の意味は *(p++) であり (*p)++ ではありません この式には副作用がありません 3405 Index[Array] は Array[Index] と同等ですが より混乱を生じ易い形式です 3422 式文の最上位に冗長な演算子が含まれています 3423 式文のトップ レベルに不要なキャストがあります 3424 おそらくビット演算子ではなくて 論理演算子を意図しています 3425 ':' 演算子の片側の式に副作用がありません 3426 カンマ演算子の右側に副作用がなく その値は使用されません 3427 論理演算子の右側に副作用がありません 3428 マクロ定義に型修飾子 '%s' が含まれています 3429 関数型マクロよりも関数を使用すべきです 3430 マクロの実引数は括弧で囲むべきです 3432 マクロ本体のただ一つしかない対象物を () で囲っていません 3433 数字マクロ本体が () で囲われていません 3434 リテラルマクロ本体が () で囲われていません 2003 Programming Research Limited 29

30 警告番号メッセージ 3436 マクロ定義が宣言済みの識別子を隠蔽します 3437 [U] 'assert' マクロを抑制して この名前の関数を呼べるようにしています 未定義の振る舞いを生じます 3438 [U] 'assert' マクロを #undef してその名前の関数を呼べるようにすると 未定義の振る舞いになります 3439 マクロはキーワードの再定義に使用してはいけません 3611 単なる char と負の定数との比較には 移植性がありません 3625 char 型の宣言には 明示的に unsigned または signed を付けるべきです ビットの符号付きビット フィールドは-1 と0 を表す事が出来ます 3661 単なる int のビットフィールドと 0 との比較には 移植性がありません 3662 単なる int のビットフィールドと負の定数との比較には 移植性がありません 3663 名前無しビットフィールドを宣言しています 3664 '.' による個々のビット選択は ISO 標準に準拠しません 3670 この呼出しについての関数の再帰的呼出しがあります 3671 関数へのポインタを介した関数呼出しです 3672 const ではない関数へのポインタを使用しています 3680 [U] 配列の領域外を指しています 3681 配列の領域外を指す可能性があります 3682 インデックスが要素数より大きい値を取るかもしれません 3683 配列の終端の 1つ先の要素の位置を指しています 3890 左シフトされた式をより大きい型へキャストしています 3891 右シフトされた式をより大きな型へキャストしています 3892 明示的なキャストは他の型への暗黙的なキャストです 3893 左シフトされた式をより小さい型へキャストしています 3894 右シフトされた式をより小さな型へキャストしています 4113 関係演算子の両側のオペランドが論理式です 4131 符号付きのオペランドを左シフトしています 4700 メトリックス %s の値が閾値を超えています 2003 Programming Research Limited 30

31 付録 B. 変更されたされたメッセージ 警告番号 メッセージ 160 [U] %s 番目の変換指定子はサポートされていません 161 [U] %s 番目の変換指定子 'I' または 'd' に未知のフラグが使われています 162 [U] %s 番目の変換指定子 'o' に未知のフラグが使われています 163 [U] %s 番目の変換指定子 'u' に未知のフラグが使われています 164 [U] %s 番目の変換指定子 'x' に未知のフラグが使われています 165 [U] %s 番目の変換指定子 'X' に未知のフラグが使われています 166 [U] %s 番目の変換指定子 'f' に未知のフラグが使われています 167 [U] %s 番目の変換指定子 'e' に未知のフラグが使われています 168 [U] %s 番目の変換指定子 'E' に未知のフラグが使われています 169 [U] %s 番目の変換指定子 'g' に未知のフラグが使われています 170 [U] %s 番目の変換指定子 'G' に未知のフラグが使われています 171 [U] %s 番目の変換指定子 'c' に未知のフラグが使われています 172 [U] %s 番目の変換指定子 '%%' に未知のフラグが使われています 173 [U] %s 番目の変換指定子 's' に未知のフラグが使われています 174 [U] %s 番目の変換指定子 'n' 未知のフラグが使われています 175 [U] %s 番目の変換指定子 'p' に未知のフラグが使われています 176 [U] %s 番目の変換指定子は未知の仕様です 177 [U] フィールド幅が 509 文字を超えました 178 [U] 精度幅が 509 文字を超えました 179 [U] 変換指定子 '%s' と実引数の型が合っていません 184 [U] %s 番目の変換指定子を満足させるための実引数が足りません 185 [U] 変換指定子で指定した数より多くの実引数で呼び出されています 186 [U] 少なくとも一つの実引数を使って呼び出さなければいけません 190 [U] %s 番目の変換指定子はサポートされていません 191 [U] %s 番目の変換指定子 'd/i/n' に未知のフラグが使われています 192 [U] %s 番目の変換指定子 'o' に未知のフラグが使われています 193 [U] %s 番目の変換指定子 'u' に未知のフラグが使われています 194 [U] %s 番目の変換指定子 'x/x' に未知のフラグが使われています 195 [U] %s 番目の変換指定子 'e/e/f/g/g' に未知のフラグが使われています 2003 Programming Research Limited 31

32 警告番号 メッセージ 196 [U] %s 番目の変換指定子 's' に未知のフラグが使われています 197 [U] %s 番目の変換指定子 'p' に未知のフラグが使われています 198 [U] %s 番目の変換指定子 '%%' に未知のフラグが使われています 199 [U] %s 番目の変換指定子 '[' に未知のフラグが使われています 200 [U] %s 番目の変換指定子 'c' に未知のフラグが使われています 201 [U] %s 番目の変換指定子は未知の仕様です 202 [U] '[]' 変換仕様の中の '-' 文字は処理系に依存して定義されます 203 [U] '[]' 内の '-' の前にある文字の値が次に続く文字より大きいです 204 [U] フィールド幅が 509 文字を超えました 206 [U] 実引数の型が %s 番目の変換指定子と一致していません 207 [U] 'scanf' にはデータを格納すべきオブジェクトのアドレスが必要です 208 [U] scanset( 走査文字集合 :[] に囲われた文字のセット ) に同じ文字が 1 つ以上現れています 241 このファイルには Ctrl-Z が存在します - これは PC から転送されたコードですか? 274 定数の値が対象の型で表現できる範囲を外れています 280 [L] 結果は ISO で定義されている符号付きの値の範囲を超えています 283 [L] 浮動小数点定数が 表現可能な範囲を超えています 304 [U] 'register' として宣言された配列のアドレスを演算してはなりません 307 [U] このキャストをポインタに対して行うことは定義されていません 308 不完全型に対して ポインタを含む移植性のないキャストを行っています 308 不完全型に対して ポインタを含む移植性のないキャストを行っています 340 多くの K&R コンパイラは '#error' を受け付けません 341 K&R コンパイラは ISO 文字列生成演算子 '#' をサポートしていません 342 K&R コンパイラは ISO 文字列連結演算子 '##' をサポートしていません 343 文字列の連結は ISO の機能です K&R コンパイラでは機能しません 344 K&R コンパイラは関数プロトタイプをサポートしていません 345 旧式の K&R コンパイラは 'void' を識別子として扱うでしょう 346 %s' は ISO の予約語ですが K&R コンパイラでは認識されません 347 K&R コンパイラは 'extern' 変数の初期化を許しません 348 旧式の K&R コンパイラはビットフィールドをサポートしません 349 単項演算子 '+' は ISO の機能です これは全ての K&R コンパイラでサポートされているわけではありません 2003 Programming Research Limited 32

33 警告番号 メッセージ 350 K&R コンパイラの中には 'enum' をサポートしていないものや 正しくサポートをしないものがあります 352 '#elif' は全ての K&R コンパイラがサポートしているわけではありません 446 [C] ++/-- のオペランドはスカラ ( 算術またはポインタ ) 型でなくてはなりません 447 [C] ++/-- のオペランドは変更可能なオブジェクトでなければなりません 448 [C] サイズが不明なオブジェクトへのポインタの増分 ( 減分 ) はできません 449 [C] 関数へのポインタの増分 ( 減分 ) はできません 457 [C] アドレス演算子 '&' はビットフィールドに適用できません 475 [u] サイズが未定義のビットフィールド式です 476 [C] 'sizeof' はビットフィールドに適用できません 486 [C] 整数式と適合するポインタのみがポインタから減算することができます 502 符号付きデータに対する右シフトは 算術型と論理型の両方の可能性があります 547 [U] このタグ '%s' の宣言は 前の宣言と矛盾しています 588 [C] ビットフィールドの幅は整数定数式でなければなりません 592 負の 'case' ラベルは全てのコンパイラに対して移植性があるわけではありません 625 [U] '%s' は内部リンケージと外部リンケージの両方で宣言されています 振る舞いは未定義です 635 [U] int 以外の型を持つビットフィールドの振る舞いは未定義です 635 [U] int 以外の型を持つビットフィールドの振る舞いは未定義です 644 [C] ビットフィールドの幅は 'int' の幅を超えてはなりません 645 [C] 幅がゼロのビットフィールドに名前を与えることはできません 650 [C] 関数の仮引数に違法な記憶クラス指定子が使われています 652 [U] 識別子は関数プロトタイプの中の仮引数全てに与えるか全く与えないかどちらかであるべきです 661 [U] '%s()' は ローカルに宣言されたときに記憶クラス指定子 'static' を伴っていない可能性があります 664 関数の仮引数に '(void)' 型は使用できません おそらく 仮引数リストを '(void)' にする意図だったはずです 664 関数の仮引数に '(void)' 型は使用できません おそらく 仮引数リストを '(void)' にする意図だったはずです 685 [C] 'struct' 'union' または配列型 あるいは静的記憶期間を持つオブジェクトの初期化子は定数式でなければなりません 687 結合された文字列を用いて配列が初期化されていて 初期化子の数が宣言されたサイズより小さくなっています 2003 Programming Research Limited 33

34 警告番号 メッセージ 688 配列のサイズが 結合された文字列を含む初期化子の数によって決定されています 735 'switch' 文の中で関係演算子や論理演算子を使うと 通常はプログラミング エラーとなります 744 [U] ' %s()' は 'void' 型以外の型を返すと定義されていますが 'return' 文がありません 745 %s()' は 'void' 型以外の型を返すと定義されていますが 'return;' が見つかりました 747 [u] 'void' 型の関数として定義された '%s()' 内で 'return 式 ;' が見つかりました 754 %s()' は 'return;' と 'return 式 ;' の両方の文を持っています 776 [L] 外部識別子名が他の識別子名 ( 例 '%s') と 最初の 6 文字で一致しています - プログラムは ISO 準拠ではありません 777 [U] 外部識別子名が他の識別子名 ( 例 '%s') と 指定された文字数の範囲内で異なっていません 778 [L] 識別子名が他の識別子名 ( 例 '%s') と 最初の 31 文字で一致しています - プログラムは ISO 準拠ではありません 779 [U] 識別子名が他の識別子名 ( 例 '%s') と 指定された文字数の範囲内で異なっていません 813 [U] '#include <%s>' 内での ' " \\ または /* の使用は未定義の振る舞いを生じます 814 [U] '#include "%s"' 内での ' '\\ または /* の使用は未定義の振る舞いを生じます 815 [L] #include < > の名前は ISO の制約違反です 816 [L] #include " " の名前は ISO の制約違反です 818 [C] '%s' を見つけることができません 適切な検索パスが設定されていないのでしょう 819 [C] '%s' を開くことができません 適切な検索パスが設定されていないのでしょう 820 #include' にはヘッダ名が必要です 821 [C] '#include %s' は処理できるヘッダまたはソースファイルを特定できません 823 [S] 予期しない #else または #elif 指令です #else または #elif 指令は #if グループの else ブランチにあってはなりません 830 [S] 前処理指令の後には空白類と改行のみを続けられます前処理指令に対する余分なテキストを追加するにはコメントを使用して下さい 831 この '#include' 行で使われる '\\' は PC 用の拡張です - '/' であると仮定します この使い方は移植性を損ねます 845 [C] オブジェクト型マクロ '%s' を関数型マクロとして再定義しています 855 前処理の結果が 前処理指令の形式を持つトークンの並びの中に存在します 857 [L] マクロ定義の数が 1024 を超えています - プログラムは ISO 準拠ではありません 858 [L] マクロ仮引数の数が 31 を超えています - プログラムは ISO 準拠ではありません 859 [L] マクロ呼び出しの実引数の数が 31 を超えています 869 #error' 前処理指令 :%s 解析が '#error' によって中止されました 2003 Programming Research Limited 34

35 警告番号 メッセージ 874 [U] 文字列リテラルとワイド文字列リテラルが隣接しています 899 [C] '#' は前処理トークン内の区切子か '#define' 内の演算子としてのみ使用できます 918 ソースが複雑すぎます この問題を東陽テクニカ に連絡して下さい 1003 [S] '#%s' はインライン アセンブラ用の言語拡張です 1004 [S] 対応する '#asm' 前処理指令が無い '#endasm' が見つかりました 1005 [S] '#%s' 前処理指令を探している途中で ファイルの終端に到達してしまいました 1006 [S] このアセンブラ定数は無視されました 1011 [S] C++ コメント '//' の使用は C 言語としては拡張仕様です 1100 ラベル '%s' は typedef としても宣言されています 一部の C++ では '%s' は予約語です 1303 関数型の空の仮引数並びは C++ では異なる意味を持ちます 1304 古いスタイルの関数定義 '%s()' は C++ への移植性がありません 1306 '%s' に対する複数の一時的定義があります - C では動作しますが C++ では動作しません 1307 名前無しの構造体型と共用体型は C++ への移行の際に移植上の問題を引き起こすかも知れません 1309 C++ では typedef '%s' 既に存在する構造体タグ / 共用体タグ /'enum' タグと衝突します 1310 '%s' は同じ構造体 / 共用体 /'enum' に対してタグ並びに typedef として使われています 1312 この初期化されている配列は文字列初期化子の終端の '\0' を保持しません 1314 タグ '%s' は他の構造体 / 共用体の中で定義されました 1315 C++ では 'static' を指定できるのはオブジェクトまたは関数だけです 1317 列挙型に無い値です 1318 C++ では 列挙型オブジェクトに対して += 等の複合型演算子を使用することはできません 1319 C++ では 増分と減分演算子は列挙型付きのオブジェクトには適用できません 1323 列挙型定数の sizeof は C++ では sizeof(int) とは保証されていません 1325 '%s()' は 'void' 型以外の型を返すと定義されていますが 'return;' を含んでいます これは C++ では許されません 1327 C++ では マクロ STDC の値や存在は何も保証されていません 1328 関数宣言の中でタグ付けされた型が定義されています 1999 外部識別子 %s のインタフェース定義ファイルは既に存在します 2002 この 'switch' 文には 'default' ラベルがありません 2003 空でない 'case' ラベルは明示的な 'break' 文で終わるべきです 2004 'if'-'else'-'if' 文を完結させる 'else' 文が存在しません 2003 Programming Research Limited 35

36 警告番号 メッセージ 2006 関数 '%s()' には複数の 'return' 文が存在します 2008 case' ラベルまたは 'default' ラベルの前に 'switch' 文本体のコードが存在します 2010 関数 '%s()' を呼び出してはいけません 2100 汎整数拡張 :unsigned char は signed int に拡張されます 2101 汎整数拡張 :unsigned short は signed int に拡張されます 2547 タグ '%s' を使うことによってより広域な宣言を隠しています 3002 関数 '%s()' を定義する際に識別子リストと仮引数宣言を分離して記述するのは 旧式の方法です 3101 単項演算子 '-' を unsigned int または unsigned long に対して使用すると 結果が 'unsigned' になってしまいます 3104 #pragma '%s' は不正な実引数を持つので無視されました 3105 #pragma ブロックが #pragma %s によって閉じられていません 3106 この # 指令は無視されています この # 指令は #pragma %s を期待する #pragma ブロックの中に存在します 3108 [S] 入れ子 ( ネスティング ) のコメントは ISO 標準では認識されないため 使用するべきではありません 3110 この ',' の左オペランドは何の副作用もありません 3120 整数定数 '%s' が直接使用されています これは避けるべきです 3121 浮動小数点型定数 '%s' が直接使用されています これは避けるべきです 3122 文字列定数 "%s" が直接使用されています これは避けるべきです 3123 文字定数 '%s' が直接使用されています これは避けるべきです 3205 識別子 '%s' はその有効範囲で使用されていません 削除可能です 3208 '%s()' は値を返しますが 無視されていることがあります 3209 '%s()' は値を返しますが いつも無視されています 3210 識別子 '%s' は広域宣言されましたが使用されていません 3211 識別子 '%s' は広域定義されましたが使用されていません 3302 定数式での符号無しの引き算の結果が 0 を下回ったため 上位ビットが失われました 3303 定数式での符号無しの演算の結果が最大値を超えたため 上位ビットが失われました 3304 定数式での符号無しの掛け算の結果が最大値を超えたため 上位ビットが失われました 3305 より制限された境界調整へのポインタキャストです 3309 この 'switch' 文の条件式は定数式です 3310 この構造体タグ '%s' の定義はまだ 与えられていません 2003 Programming Research Limited 36

37 警告番号 メッセージ 3311 このブロックの外側からラベル '%s' へジャンプしています ローカルな初期化は行なわれません 3312 [U] ラベル '%s' が そこにジャンプすると実行されないローカルな初期化文を含むブロック内にあります 3313 この構造体タグ '%s' の定義が見つかりません 3316 符号無しのデータを 0 と比較するのは危険です 3323 このループの制御条件が定数値です 3330 関数 '%s()' が 可変個の実引数を伴って呼び出されています 3331 [U] '%s()' の値が使用されていますが 値を返しません この振る舞いは未定義です 3332 この '#if ' で使用されているマクロ '%s' が定義されていません 3333 break' 文は 'switch' 文の中でのみ使用されるべきです 3334 この '%s' の宣言はより広域な宣言を隠しています 3335 関数プロトタイプがありません 省略時解釈で 'extern int %s' が挿入されます 3336 この列挙型はまだ定義されていません 3409 マクロ本体が () で囲われていません 3410 マクロ仮引数が () で囲われていません 3411 マクロ定義の中に 対になっていない角括弧または括弧があります 3412 マクロ定義の中に '{', '}', ';' またはキーワード予約語が含まれています 3413 このマクロ定義は typedef に置き換えることができるはずです 3414 マクロ定義に記憶域修飾子 '%s' が含まれています 3415 演算子 '&&', ' ', '? :' の右オペランドに副作用があります 3416 この論理式に副作用があります 3418 カンマ演算子が for ループのヘッダで使用されています 3419 for' 文の初期化式に副作用がありません 3420 for' 文の増分式に副作用がありません 3607 仮引数 '%s' は関数として宣言されているので 関数ポインタに暗黙の変換が行われます 3612 単なる char と 0 との比較には 移植性がありません 3613 コンパイラによってはこの 8 または 9 を 8 進数定数の一部とみなします 3616 文字定数はプリプロセッサの演算での値と実際のコードでの値が異なるかもしれません 3617 構造体 / 共用体の代入は 古いコンパイラではサポートしていません 3621 ビットフィールドは移植性が良くありません - 古いコンパイラによってはそれをサポートしないものもあります 2003 Programming Research Limited 37

38 警告番号 メッセージ 3623 関数に構造体または共用体を値で渡しています 3624 関数から構造体または共用体を値で返しています 3651 サイズが不明な配列に typedef を使用することは予期できない結果を引き起こします 3700 暗黙のキャスト :char から signed char 移植性のない単なる char からの型変換です 3701 暗黙のキャスト :char から unsigned char 移植性のない単なる char からの型変換です 3703 暗黙のキャスト :char から unsigned short 移植性のない単なる char からの型変換です 3705 暗黙のキャスト :char から unsigned int 移植性のない単なる char からの型変換です 3707 暗黙のキャスト :char から long 移植性のない単なる char からの型変換です 3708 暗黙のキャスト :char から float 整数から浮動小数点への型変換です 3709 暗黙のキャスト :char から doublet 整数から浮動小数点への型変換です 3710 暗黙のキャスト :char から long double 整数から浮動小数点への型変換です 3711 暗黙のキャスト :unsigned char から char 移植性のない単なる char への型変換です 3712 暗黙のキャスト :unsigned char から signed char 符号無しから符号付きへの型変換です 3713 暗黙のキャスト :unsigned char から short 3715 暗黙のキャスト :unsigned char から int 3717 暗黙のキャスト :unsigned char から long 3719 暗黙のキャスト :unsigned char から float 整数から浮動小数点数への変換です 3720 暗黙のキャスト :unsigned char から double 整数から浮動小数点数への変換です 3721 暗黙のキャスト :unsigned char から long double 整数から浮動小数点数への変換です 3722 暗黙のキャスト :signed char から char 単なる char への移植性のない変換です 3723 暗黙のキャスト :signed char から unsigned char 符号付きから符号無しへの変換です 3725 暗黙のキャスト :signed char から unsigned short 符号付きから符号無しへの変換です 3727 暗黙のキャスト :signed char から unsigned int 符号付きから符号無しへの変換です 3729 暗黙のキャスト :signed char から unsigned long 符号付きから符号無しへの変換です 3730 暗黙のキャスト :signed char から float 整数から浮動小数点数への変換です 3731 暗黙のキャスト :signed char から double 整数から浮動小数点数への変換です 3732 暗黙のキャスト :signed char から long double 整数から浮動小数点数への変換です 3733 暗黙のキャスト :short から char より小さな型への変換 3734 暗黙のキャスト :short から signed char より小さな型への変換です 3735 暗黙のキャスト :short から unsigned char 符号付きからより小さな符号無しへの変換です 3736 暗黙のキャスト :short から unsigned short 符号付きから符号無しへの変換です 2003 Programming Research Limited 38

39 警告番号 メッセージ 3738 暗黙のキャスト :short から unsigned int 符号付きから符号無しへの変換です 3740 暗黙のキャスト :short から unsigned long 符号付きから符号無しへの変換です 3741 暗黙のキャスト :short から float 整数から浮動小数点数への変換です 3742 暗黙のキャスト :short から double 整数から浮動小数点数への変換です 3743 暗黙のキャスト :short から long double 整数から浮動小数点数への変換です 3744 暗黙のキャスト :unsigned short から char より小さな型への変換 単なる char への移植性のない変換です 3745 暗黙のキャスト :unsigned short から signed char 符号無しからより小さな符号付きへの変換です 3746 暗黙のキャスト :unsigned short から unsigned char より小さな型への変換です 3747 暗黙のキャスト :unsigned short から short 符号無しから符号付きへの変換です 3748 暗黙のキャスト :unsigned short から int 3750 暗黙のキャスト :unsigned short から long 3752 暗黙のキャスト :unsigned short から float 整数から浮動小数点数への変換です 3753 暗黙のキャスト :unsigned short から double 整数から浮動小数点数への変換です 3754 暗黙のキャスト :unsigned short から long double 整数から浮動小数点数への変換です 3755 暗黙のキャスト :int から char より小さな型への変換 単なる char への移植性のない変換です 3756 暗黙のキャスト :int から signed char より小さな型への変換です 3757 暗黙のキャスト :int から unsigned char 符号付きからより小さな符号無しへの変換です 3758 暗黙のキャスト :int から short より小さな型への変換です 3759 暗黙のキャスト :int から unsigned short 符号付きからより小さな符号無しへの変換です 3760 暗黙のキャスト :int から unsigned int 符号付きから符号無しへの変換です 3762 暗黙のキャスト :int から unsigned long 符号付きから符号無しへの変換です 3763 暗黙のキャスト :int から float 整数から浮動小数点数への変換です 3764 暗黙のキャスト :int から double 整数から浮動小数点数への変換です 3765 暗黙のキャスト :int から long double 整数から浮動小数点数への変換です 3766 暗黙のキャスト :unsigned int から char 小さな型への変換 単なる char への移植性のない変換です 3767 暗黙のキャスト :unsigned int から signed char 符号無しからより小さな符号付きへの変換です 3768 暗黙のキャスト :unsigned int から unsigned char より小さな型への変換です 3769 暗黙のキャスト :unsigned int から short 符号無しからより小さな符号付きへの変換です 2003 Programming Research Limited 39

40 警告番号 メッセージ 3770 暗黙のキャスト :unsigned int から unsigned short より小さな型への変換です 3771 暗黙のキャスト :unsigned int から int 符号無しから符号付きへの変換です 3772 暗黙のキャスト :unsigned int から long 3774 暗黙のキャスト :unsigned int から float 整数から浮動小数点数への変換です 3775 暗黙のキャスト :unsigned int から double 整数から浮動小数点数への変換です 3776 暗黙のキャスト :unsigned int から long double 整数から浮動小数点数への変換です 3777 暗黙のキャスト :long から char より小さな型への変換 単なる char への移植性のない変換です 3778 暗黙のキャスト :long から signed char より小さな型への変換です 3779 暗黙のキャスト :long から unsigned char 符号付きからより小さな符号無しへの変換です 3780 暗黙のキャスト :long から short より小さな型への変換です 3781 暗黙のキャスト :long から unsigned short 符号付きからより小さな符号無しへの変換です 3782 暗黙のキャスト :long から int より小さな型への変換です 3783 暗黙のキャスト :long から unsigned int 符号付きからより小さな符号無しへの変換です 3784 暗黙のキャスト :long から unsigned long 符号付きから符号無しへの変換です 3785 暗黙のキャスト :long から float 整数から浮動小数点数への変換です 3786 暗黙のキャスト :long から double 整数から浮動小数点数への変換です 3787 暗黙のキャスト :long から long double 整数から浮動小数点数への変換です 3788 暗黙のキャスト :unsigned long から char より小さな型への変換 単なる char への移植性のない変換です 3789 暗黙のキャスト :unsigned long から signed char 符号無しからより小さな符号付きへの変換です 3790 暗黙のキャスト :unsigned long から unsigned char より小さな型への変換です 3791 暗黙のキャスト :unsigned long から short 符号無しからより小さな符号付きへの変換です 3792 暗黙のキャスト :unsigned long から unsigned short より小さな型への変換です 3793 暗黙のキャスト :unsigned long から int 符号無しからより小さな符号付きへの変換です 3794 暗黙のキャスト :unsigned long から unsigned int より小さな型への変換です 3795 暗黙のキャスト :unsigned long から long 符号無しから符号付きへの変換です 3796 暗黙のキャスト :unsigned long から float 整数から浮動小数点数への変換です 3797 暗黙のキャスト :unsigned long から double 整数から浮動小数点数への変換です 3798 暗黙のキャスト :unsigned long から long double 整数から浮動小数点数への変換です 3799 暗黙のキャスト :float から char 精度の損失が起こり得ます 2003 Programming Research Limited 40

41 警告番号 メッセージ 3800 暗黙のキャスト :float から signed char 精度の損失が起こり得ます 3801 暗黙のキャスト :float から unsigned char 精度の損失が起こり得ます 3802 暗黙のキャスト :float から short 精度の損失が起こり得ます 3803 暗黙のキャスト :float から unsigned short 精度の損失が起こり得ます 3804 暗黙のキャスト :float から int 精度の損失が起こり得ます 3805 暗黙のキャスト :float から unsigned int 精度の損失が起こり得ます 3806 暗黙のキャスト :float から long 精度の損失が起こり得ます 3807 暗黙のキャスト :float から unsigned long 精度の損失が起こり得ます 3810 暗黙のキャスト :double から char 精度の損失が起こり得ます 3811 暗黙のキャスト :double から signed char 精度の損失が起こり得ます 3812 暗黙のキャスト :double から unsigned char 精度の損失が起こり得ます 3813 暗黙のキャスト :double から short 精度の損失が起こり得ます 3814 暗黙のキャスト :double から unsigned short 精度の損失が起こり得ます 3815 暗黙のキャスト :double から int 精度の損失が起こり得ます 3816 暗黙のキャスト :double から unsigned int 精度の損失が起こり得ます 3817 暗黙のキャスト :double から long 精度の損失が起こり得ます 3818 暗黙のキャスト :double から unsigned long 精度の損失が起こり得ます 3819 暗黙のキャスト :double から float 精度の損失が起こり得ます 3821 暗黙のキャスト :long double から char 精度の損失が起こり得ます 3822 暗黙のキャスト :long double から signed char 精度の損失が起こり得ます 3823 暗黙のキャスト :long double から unsigned char 精度の損失が起こり得ます 3824 暗黙のキャスト :long double から short 精度の損失が起こり得ます 3825 暗黙のキャスト :long double から unsigned short 精度の損失が起こり得ます 3826 暗黙のキャスト :long double から int 精度の損失が起こり得ます 3827 暗黙のキャスト :long double から unsigned int 精度の損失が起こり得ます 3828 暗黙のキャスト :long double から long 精度の損失が起こり得ます 3829 暗黙のキャスト :long double から unsigned long 精度の損失が起こり得ます 3830 暗黙のキャスト :long double から float 精度の損失が起こり得ます 3831 暗黙のキャスト :long double から double 精度の損失が起こり得ます 3900 char の値が signed char %s() から返されています 単なる char の移植性のない型変換です 3901 char の値が unsigned char %s() から返されています 単なる char の移植性のない型変換です 2003 Programming Research Limited 41

42 警告番号 メッセージ 3903 char の値が unsigned short %s() から返されています 単なる char の移植性のない型変換です 3905 char の値が unsigned int %s() から返されています 単なる char の移植性のない型変換です 3907 char の値が unsigned long %s() から返されています 単なる char の移植性のない型変換です 3908 char の値が float %s() から返されています 整数から浮動小数点数への変換です 3909 char の値が double %s() から返されています 整数から浮動小数点数への変換です 3910 char の値が long double %s() から返されています 整数から浮動小数点数への変換です 3911 unsigned char の値が char %s() から返されています 単なる char への移植性のない変換です 3912 unsigned char の値が signed char %s() から返されています 符号無しから符号付きへの変換です 3913 unsigned char の値が short %s() から返されています 3915 unsigned char の値が int %s() から返されています 3917 unsigned char の値が long %s() から返されています 3919 unsigned char の値が float %s() から返されています 整数から浮動小数点数への変換です 3920 unsigned char の値が double %s() から返されています 整数から浮動小数点数への変換です 3921 unsigned char の値が long double %s() から返されています 整数から浮動小数点数への変換です 3922 signed char の値が char %s() から返されています 単なる char への移植性のない変換です 3923 signed char の値が unsigned char %s() から返されています 符号付きから符号無しへの変換です 3925 signed char の値が unsigned short %s() から返されています 符号付きから符号無しへの変換です 3927 signed char の値が unsigned int %s() から返されています 符号付きから符号無しへの変換です 3929 signed char の値が unsigned long %s() から返されています 符号付きから符号無しへの変換です 3930 signed char の値が float %s() から返されています 整数から浮動小数点数への変換です 3931 signed char の値が double %s() から返されています 整数から浮動小数点数への変換です 3932 signed char の値が long double %s() から返されています 整数から浮動小数点数への変換です 3933 short の値が char %s() から返されています より小さな型への変換です 単なる char への移植性のない変換です 2003 Programming Research Limited 42

43 警告番号 メッセージ 3934 short の値が signed char %s() から返されています より小さな型への変換です 3935 short の値が unsigned char %s() から返されています 符号付きから小さな符号無しへの変換です 3936 short の値が unsigned short %s() から返されています 符号付きから符号無しへの変換です 3938 short の値が unsigned int %s() から返されています 符号付きから符号無しへの変換です 3940 short の値が unsigned long %s() から返されています 符号付きから符号無しへの変換です 3941 short の値が float %s() から返されています 整数から浮動小数点数への変換です 3942 short の値が double %s() から返されています 整数から浮動小数点数への変換です 3943 short の値が long double %s() から返されています 整数から浮動小数点数への変換です 3944 unsigned short の値が char %s() から返されています より小さな型への変換です 単なる char への移植性のない変換です 3945 unsigned short の値が signed char %s() から返されています 符号無しからより小さな符号付きへの変換です 3946 unsigned short の値が unsigned char %s() から返されています より小さな型への変換です 3947 unsigned short の値が short %s() から返されています 符号無しから符号付きへの変換です 3948 unsigned short の値が int %s() から返されています 3950 unsigned short の値が long %s() から返されています 3952 unsigned short の値が float %s() から返されています 整数から浮動小数点数への変換です 3953 unsigned short の値が double %s() から返されています 整数から浮動小数点数への変換です 3954 unsigned short の値が long double %s() から返されています 整数から浮動小数点数への変換です 3955 int の値が char %s() から返されています より小さな型への変換です 単なる char への移植性のない変換です 3956 int の値が signed char %s() から返されています より小さな型への変換です 3957 int の値が unsigned char %s() から返されています 符号付きからより小さな符号無しへの変換です 3958 int の値が short %s() から返されています より小さな型への変換です 3959 int の値が unsigned short %s() から返されています 符号付きからより小さな符号無しへの変換です 3960 int の値が unsigned int %s() から返されています 符号付きから符号無しへの変換です 3962 int の値が unsigned long %s() から返されています 符号付きから符号無しへの変換です 3963 int の値が float %s() から返されています 整数から浮動小数点数への変換です 3964 int の値が double %s() から返されています 整数から浮動小数点数への変換です 2003 Programming Research Limited 43

44 警告番号 メッセージ 3965 int の値が long double %s() から返されています 整数から浮動小数点数への変換です 3966 unsigned int の値が char %s() から返されています より小さな型への変換です 単なる char への移植性のない変換です 3967 unsigned int の値が signed char %s() から返されています 符号無しからより小さな符号付きへの変換です 3968 unsigned int の値が unsigned char %s() から返されています より小さな型への変換です 3969 unsigned int の値が short %s() から返されています 符号無しからより小さな符号付きへの変換です 3970 unsigned int の値が unsigned short %s() から返されています より小さな型への変換です 3971 unsigned int の値が int %s() から返されています 符号無しから符号付きへの変換です 3972 unsigned int の値が long %s() から返されています 3974 unsigned int の値が float %s() から返されています 整数から浮動小数点数への変換です 3975 unsigned int の値が double %s() から返されています 整数から浮動小数点数への変換です 3976 unsigned int の値が long double %s() から返されています 整数から浮動小数点数への変換です 3977 long の値が char %s() から返されています より小さな型への変換です 単なる char への移植性のない変換です 3978 long の値が signed char %s() から返されています より小さな型への変換です 3979 long の値が unsigned char %s() から返されています 符号付きからより小さな符号無しへの変換です 3980 long の値が short %s() から返されています より小さな型への変換です 3981 long の値が unsigned short %s() から返されています 符号付きからより小さな符号無しへの変換です 3982 long の値が int %s() から返されています より小さな型への変換です 3983 long の値が unsigned int %s() から返されています 符号付きからより小さな符号無しへの変換です 3984 long の値が unsigned long %s() から返されています 符号付きから符号無しへの変換です 3985 long の値が float %s() から返されています 整数から浮動小数点数への変換です 3986 long の値が double %s() から返されています 整数から浮動小数点数への変換です 3987 long の値が long double %s() から返されています 整数から浮動小数点数への変換です 3988 unsigned long の値が char %s() から返されています より小さな型への変換です 単なる char への移植性のない変換です 3989 unsigned long の値が signed char %s() から返されています 符号無しからより小さな符号付きへの変換です 3990 unsigned long の値が unsigned char %s() から返されています より小さな型への変換です 2003 Programming Research Limited 44

45 警告番号 メッセージ 3991 unsigned long の値が short %s() から返されています 符号無しからより小さな符号付きへの変換です 3992 unsigned long の値が unsigned short %s() から返されています より小さな型への変換です 3993 unsigned long の値が int %s() から返されています 符号無しからより小さな符号付きへの変換です 3994 unsigned long の値が unsigned int %s() から返されています より小さな型への変換です 3995 unsigned long の値が long %s() から返されています 符号無しから符号付きへの変換です 3996 unsigned long の値が float %s() から返されています 整数から浮動小数点数への変換です 3997 unsigned long の値が double %s() から返されています 整数から浮動小数点数への変換です 3998 unsigned long の値が long double %s() から返されています 整数から浮動小数点数への変換です 3999 float の値が char %s() から返されています 精度の損失が起こり得ます 4000 float の値が signed char %s() から返されています 精度の損失が起こり得ます 4001 float の値が unsigned char %s() から返されています 精度の損失が起こり得ます 4002 float の値 short %s() から返されています 精度の損失が起こり得ます 4003 float の値が unsigned short %s() から返されています 精度の損失が起こり得ます 4004 float の値が int %s() から返されています 精度の損失が起こり得ます 4005 float の値が unsigned int %s() から返されています 精度の損失が起こり得ます 4006 float の値が long %s() から返されています 精度の損失が起こり得ます 4007 float の値が unsigned long %s() から返されています 精度の損失が起こり得ます 4010 double の値が char %s() から返されています 精度の損失が起こり得ます 4011 double の値が signed char %s() から返されています 精度の損失が起こり得ます 4012 double の値が unsigned char %s() から返されています 精度の損失が起こり得ます 4013 double の値が short %s() から返されています 精度の損失が起こり得ます 4014 double の値が unsigned short %s() から返されています 精度の損失が起こり得ます 4015 double の値が int %s() から返されています 精度の損失が起こり得ます 4016 double の値が unsigned int %s() から返されています 精度の損失が起こり得ます 4017 double の値が long %s() から返されています 精度の損失が起こり得ます 4018 double の値が unsigned long %s() から返されています 精度の損失が起こり得ます 4019 double の値が float %s() から返されています 精度の損失が起こり得ます 4021 long double の値が char %s() から返されています 精度の損失が起こり得ます 4022 long double の値が signed char %s() から返されています 精度の損失が起こり得ます 2003 Programming Research Limited 45

46 警告番号 メッセージ 4023 long double の値が unsigned char %s() から返されています 精度の損失が起こり得ます 4024 long double の値が short %s() から返されています 精度の損失が起こり得ます 4025 long double の値が unsigned short %s() から返されています 精度の損失が起こり得ます 4026 long double の値が int %s() から返されています 精度の損失が起こり得ます 4027 long double の値が unsigned int %s() から返されています 精度の損失が起こり得ます 4028 long double の値が long %s() から返されています 精度の損失が起こり得ます 4029 long double の値が unsigned long %s() から返されています 精度の損失が起こり得ます 4030 long double の値が float %s() から返されています 精度の損失が起こり得ます 4031 long double の値が double %s() から返されています 精度の損失が起こり得ます 4101 ビット演算子 '&' の両側のオペランドが論理式です 4102 ビット演算子 ' ' の両側のオペランドが論理式です 4103 算術演算子の両側のオペランドが論理式です 4104 算術演算子の左側のオペランドが論理式です 4105 算術演算子の右側のオペランドが論理式です 4106 論理積演算子 '&&' の両側のオペランドが算術式です 4107 論理和演算子 ' ' の両側のオペランドが算術式です 4108 論理演算子の左側のオペランドが算術式です 4109 論理演算子の右側のオペランドが算術式です 4110 論理否定演算子 '!' が算術式に使用されています 4111 関係演算子の右側のオペランドが論理式です 4112 関係演算子の左側のオペランドが論理式です 4120 代入時に 整数式が暗黙的により大きな型にキャストされます 4123 代入時に 'float' 式が暗黙的に 'double' にキャストされます 4124 代入時に 'float' 式が暗黙的に 'long double' にキャストされます 4125 代入時に 'double' 式が暗黙的に 'long double' にキャストされます 4130 符号付きデータに対するビット単位の演算は未定義の結果になります 4140 関数の戻り値にローカルなデータのアドレスを返しています 4150 文字の 'l' と '1' だけが使用されている名前 '%s' は混乱を引き起こすかもしれません 4151 文字の '0' と 'O' だけが使用されている名前 '%s' は混乱を引き起こすかもしれません 4152 文字の 'l' と '1' が使用されている名前 '%s' は混乱を引き起こすかもしれません 4153 文字の '0' と 'O' が使用されている名前 '%s' は混乱を引き起こすかもしれません 注 ) ここに記載されいる警告文以外にも用語の統一などで若干の変更を加えたものがあります 2003 Programming Research Limited 46

47 付録 C. 削除されたされたメッセージ 警告番号 メッセージ 6 実引数が範囲外です 99 評価版のため各メッセージは2 度までしか表示されません 155 ヒープ領域が足りません 156 メモリー マネージャのノードが足りません 157 メモリー マネージャのブロックが足りません 205 精度幅が 509 文字を超えました 236 拡張表記の値が移植性の良い 'char' 型の値の範囲 (0-127) を超えています 文字表記を全てのコンパイラがサポートしている訳ではありません 260 ワイド文字定数とワイド文字列リテラルは まだ全てのコンパイラでサポートされている訳ではありません 270 [C] ファイルの終端の印の前には 改行文字が必要です このエラーを修正するために最終行に改行文字を付け加えるべきです 404 [u] 副作用完了点の間で2つ以上のデータ アイテムが変更されるかもしれません - データがオーバーラップすると危険です 405 [u] 副作用完了点の間でデータ アイテムが変更され アクセスされます - データがオーバーラップすると危険です 406 [u] 副作用完了点の間でデータ アイテムが変更され アクセスされるかもしれません - データがオーバーラップすると危険です 410 [L] 括弧の入れ子 ( ネスティング ) が 32 を超えました - プログラムは ISO 規格に適合していません 421 [L] 関数の実引数の数が 31 を超えます - プログラムは ISO 規格に適合していません 461 [C] 'const' からそうでないものへキャストしないで下さい 521 [C] 'int [ pointer ]' はいですが 広く受け入れられている書き方は 'pointer [ int ]' です 566 '*' と '/' 演算子には算術オペランドが必要です 567 '+' には 算術型のオペランド又はポインタと整数型のオペランドが必要です 568 ポインタ '-' ポインタ 又はポインタ '-' 汎整数のオペランドが必要です 569 '-' には 算術オペランド又は2つのポインタオペランドが必要です 570 '*' と '/' 演算子には算術オペランドが必要です 571 '%s' には 汎整数型オペランドが必要です 572 '<<' と '>>' には汎整数型のオペランドが必要です 573 '<', '>', '<=', '>=' には算術またはポインタ演算子が必要です 574 '==' と '!=' には 算術型またはポインタ型のオペランドが必要です 575 '&',' ','^' には 整数型のオペランドが必要です 609 [L] 宣言子の中の修飾子の数が 12 を超えています - プログラムは ISO 規格に適合していません 610 [L] 宣言子の中での括弧の入れ子 ( ネスティング ) の数が 31 を超えました - プログラムは ISO 規格に適合していません 611 [L] ' 構造体 (struct)' 又は ' 共用体 (union)' 型の入れ子 ( ネスティング ) の数が 15 を超えました - プログラムは ISO 規格に適合していません 613 [L] 仮引数の数が 31を超えます - プログラムは ISO 規格に適合していません 614 [L] 1つのブロック中におけるブロック有効範囲をもつ識別子の数が 127 を超えました - プログラムは ISO 規格に適合していません 2003 Programming Research Limited 47

48 警告番号 メッセージ 615 [L] 外部識別子の数が1つのファイルで 511 を超えます - プログラムは ISO 規格に適合していません 619 [C] 修飾子 '%s' は一度だけ表れる事が許されています 669 型名は ファイル有効範囲でのみ宣言されるべきです 691 'const' ではないポインタを広域データに返すことは得策ではありません 692 非 'const' のポインタを広域 (global) データへ渡さないで下さい 700 各宣言は唯一つの識別子を宣言すべきです 710 指定子の順番は 'typedef', 記憶クラス, 型指定子の順にすべきです そうすることで宣言が読み易くなります 720 最初の列挙子に値を指定するのを避けた方が得策です 721 列挙定数の値を指定するのを避けた方が得策です 730 'asm' 宣言を使用すべきではありません 748 [U] '%s()' は 'int' 型の値を返しますが 式を指定した 'return' 文がありません - 返却値は定義されていません 749 [U] 返却値の型を 'int' にしている '%s()' の中に 'return;' があります このプログラムは不正な振舞いをする可能性があります 750 'union' を使うべきではありません 751 匿名の 'union' は 使用すべきでありません - このような使用法はエラーの傾向があります 822 [S] 予期しない #else 指令です if 群の中では ただ 1 つの #else が許されます 複数の条件は #elif 指令でテストできます 840 ポインタ '%s' は安全を考えて明示的に初期化すべきです 860 マクロ '%s' が非常に長すぎます -これは クロス-モジュール チェックから外されます 870 '#pragma' は実装定義の振舞いをするので移植性を損ねます 871 [U] '#' 演算子の前処理の結果は正当な文字列リテラルではありません 876 [L] 論理行が 509 文字を超えました - プログラムは ISO C 規格に適合していません 900 '..' から字句を作ることができません - '.' で代用しています 908 [C] 前処理している字句を正当な字句に変換できません 909 [C] '#' と '##' 演算子は '#define' 前処理指令の中以外では違法です 910 '{' '}', '(' ')', '[' ']' 又は '<' '>' が対応しません 912 字句解析を続けるために '%s' 字句を無視します 921 宣言が ';' で終了していません 1016 未定義のプリプロセッサ命令です この行は無視されました 1017 関数に '...' を使うことは避けるべきです 1200 '%s' が異なった typedef 名を使って再宣言されています 同じ名前を使う方が良いやり方といえるでしょう 1201 オペランドの型のシンボル名が一貫していません 1202 代入のオペランドの型は一貫性のないシンボリック名を使っています 1203 ' 構造体 (struct)', ' 共用体 (union)' 又は ' 列挙体 (enum)' が2つの異なる typedef 名で宣言されています これは混乱を招く可能性があります 同じ名前を使う方が良いやり方といえるでしょう 1316 値の代入は C++ では適合する列挙子または列挙子型でなければなりません 1320 列挙型へのキャストは C++ では 非常に厳しく制限されています この操作は変換された値が正式の列挙子の値になる場合にのみ定義されます 1321 このキャストは C++ では定義されていません キャストされた値がその型の宣言された列挙子の 1つになっていないからです 1326 '//' は C++ コンパイラではコメントとして扱われます 1600 指令は第一桁目から書き始めるべきです 2003 Programming Research Limited 48

49 警告番号 メッセージ 1601 スキップされた前処理指令は第一桁目から始まっていません 1636 再帰的なマクロを使うべきではありません 1670 再帰的なマクロを使うべきではありません 1671 再帰的なマクロを使うべきではありません 1681 再帰的なマクロを使うべきではありません 1690 再帰的なマクロを使うべきではありません 1691 再帰的なマクロを使うべきではありません 1957 'while' は '}' の後ろに一つスペースを空けて書くべきです 1963 'else'-'if' の中の この if 文はそれを制御する 'else' 文と同一行に書くべきです 1966 関数 '%s' の返却値の型はその名前の上の行に分けて記述すべきです 1967 複数引数の並びにおいて 引数 '%s' は独自の行で指定するべきです 1968 この関数の実引数の位置は前のものとそろっていません 2011 '%s()' を呼び出すべきではありません コードが非構造的になるからです 2012 '%s()' を呼び出すべきではありません プログラムの異常終了を起こすからです 2013 '%s()' を呼び出すべきではありません 予期しない振舞いを起こす可能性があるからです 2014 '%s()' を呼び出すべきではありません 全てのプラットホームが正しくこれをサポートしている訳ではないからです 2202 この波括弧のスタイルはこのファイルの中の前のスタイルと一貫していません 2206 この行の段付けはこれ以降の段付けと一貫していません 2454 '%s' は 'for' ループを制御しています - ループ文の本体の中で変更すべきではありません 2455 '%s' が 'for' ループを制御しています この呼び出しは その値を変更するかも知れません それにより望み通りではない振舞いをするでしょう 2456 複数の制御変数を 'for' 文の中で使用する事は 勧められません 2657 実引数 '%s' は 前の宣言で名前がついていません - 宣言における引数に名前をつけることを必須としている規約があります 2658 この実引数は前の宣言で '%s' と名付けられました 一貫した名前を使うべきです 2659 名前のない実引数は 使用すべきではありません 2714 各 'typedef' 宣言では 1つの型名のみを宣言すべきです 2718 '%s' を 次に続く仮引数の集合の中で明示的に宣言するべきです 3000 文字列リテラルの中にナル文字 '\0' を含めることは推奨されていません - 文字列ライブラリの結果が予期しないものになる可能性があります 3004 精度が異なるもの同士の算術演算は安全ではありません 3005 ポインタの境界調整問題が起きかねません 3119 コンマ演算子の使用は避けるべきです 3124 #include 行のマクロ展開は信頼性がありません この使用法は移植性を損ねます 3125 #include 指令に絶対パスを指定すべきではありません - '%s' は '/' または '\' で開始されています 3126 #include 指令に相対パスを指定すべきではありません - '%s' は '.' で開始されています 3127 #include 指令で相対ディレクトリを使ってファイル名を指定することは避けるべきです '%s' に '/' または '\' が含まれています 3128 '%s' はグローバルです 3129 できるなら '%s' を最初に使用する場所の近くで宣言するべきです 変数の有効範囲をできるだけ狭くしておくことにより 将来の保守がしやすくなります 3130 '%s' は最後に使用されてから長い間有効範囲にとどまっています - {} を使用して有効範囲を狭めることを検討して下さい 3213 明示的なキャストは避けるべきです 2003 Programming Research Limited 49

50 警告番号 メッセージ 3214 '%s' は最後に更新されて以来ここまでアクセスされていません 最後の更新は冗長かもしれません 3215 '%s' は 初期化された後 この変更までアクセスされていません - この変更を初期化で行う事が可能かもしれません 3299 ローカルデータのアドレスが戻されるかも知れません - 注意深くチェックして下さい 3300 ローカルデータのアドレスを関数の返却値としています 大変危険です! 3327 符号無しの 'char' は決して負の値になりません - このテストは正しく評価されません 3329 %s 番目の実引数は以前の呼び出しでの型と異なります 3338 整数型と浮動小数点型を混在させるのは安全ではありません 3339 ブール型が期待されている場所で浮動小数点の値が見つかりました これは避けるべきです 3342 '%s' は浮動小数点の 'for' ループのインデックスです これは整数型に置き換えるべきです 文字表記と混合するので?? 文字の使用は避けるべきです 3622 スキップした指令の # と指令の間に空白類があります 3702 暗黙のキャスト : char 型から short 型への変換 暗黙のキャストは避けるべきです 3704 暗黙のキャスト : char 型から int 型への変換 暗黙のキャストは避けるべきです 3706 暗黙のキャスト : char 型から long 型への変換 暗黙のキャストは避けるべきです 3714 暗黙のキャスト : unsigned char 型から unsigned short 型への変換 暗黙のキャストは避けるべきです 3716 暗黙のキャスト : unsigned char 型から unsigned int 型への変換 暗黙のキャストは避けるべきです 3718 暗黙のキャスト : unsigned char 型から unsigned long 型への変換 暗黙のキャストは避けるべきです 3724 暗黙のキャスト : signed char 型から short 型への変換 暗黙のキャストは避けるべきです 3726 暗黙のキャスト : signed char 型から int 型への変換 暗黙のキャストは避けるべきです 3728 暗黙のキャスト : signed char 型から long 型への変換 暗黙のキャストは避けるべきです 3737 暗黙のキャスト : short 型から int 型への変換 暗黙のキャストは避けるべきです 3739 暗黙のキャスト : short 型から long 型への変換 暗黙のキャストは避けるべきです 3749 暗黙のキャスト : unsigned short 型から unsigned int 型への変換 暗黙のキャストは避けるべきです 3751 暗黙のキャスト : unsigned short 型から unsigned long 型への変換 暗黙のキャストは避けるべきです 3761 暗黙のキャスト : int 型から long 型への変換 暗黙のキャストは避けるべきです 3773 暗黙のキャスト : unsigned int 型から unsigned long 型への変換 暗黙のキャストは避けるべきです 3808 暗黙のキャスト : float 型から double 型への変換 暗黙のキャストは避けるべきです 3809 暗黙のキャスト : float 型から long double 型への変換 暗黙のキャストは避けるべきです 3820 暗黙のキャスト : double 型から long double 型への変換 暗黙のキャストは避けるべきです 3902 char 型の値が short %s() から返されました 3904 char 型の値が int %s() から返されました 3906 char 型の値が long %s() から返されました 3914 unsigned char 型の値が unsigned short %s() から返されました 3916 unsigned char 型の値が unsigned int %s() から返されました 3918 unsigned char 型の値が 'unsigned long %s() から返されました 3924 signed char 型の値が short %s() から返されました 3926 signed char 型の値が int %s() から返されました 3928 signed char 型の値が long %s() から返されました 2003 Programming Research Limited 50

51 警告番号 メッセージ 3937 short 型の値が 'int %s() から返されました 3939 short 型の値が long %s() から返されました 3949 unsigned short 型の値が unsigned int %s() から返されました 3951 unsigned short 型の値が unsigned long %s() から返されました 3961 int 型の値が long %s() から返されました 3973 unsigned int 型の値が unsigned long %s() から返されました 4008 float 型の値が double %s() から返されました 4009 float 型の値が long double %s() から返されました 4020 double 型の値が long double %s() から返されました 4701 このファイルにはもっとコメントがあるべきです 4702 このファイルにはとても多くの割合でコメントが含まれています これは読みにくくなりそうです 4704 '%s()' は高いノット密度を持ち 構造化されていません ループの中で 'break' や 'continue' を使用するのは避けるべきです 'goto' は使用すべきではありません 4705 '%s()' はとても高いノット密度を持ち 構造化されていません ループの中で 'break' や 'continue' を使用するのは避けるべきです 'goto' は使用すべきではありません 4706 '%s()' は非常に高いノット密度を持ち 構造化されていません ループの中で 'break' や 'continue' を使用するのは避けるべきです 'goto' は使用すべきではありません 4707 '%s()' は判定と判定の間に非常にたくさんのインライン コードを含んでいます これらのコードのブロックのいくつかをサブ関数にする事を考えるべきでしょう 4708 '%s()' は高い判定密度を持っています サブ関数に分割して論理を明確にすると良いかもしれません 4709 '%s()' はかなりの数の判定を持っており 理解するのが難しいかも知れません 4710 '%s()' は高い判定数を持っており 理解可能な限界を超えているかもしれません 論理の数を減らすか関数をサブ関数へ分割することによってこれを避けることができます 4711 '%s()' は極端な数の判定を持っています これでは理解できないかも知れません サブ関数に分割するべきです 4712 '%s()' には大変多くの戻る方向のジャンプが存在します 理解するのが難しいコードになりそうです 4713 このファイルを語彙分析した結果 同じ又はよく似たコードを含むブロックがあります これは サブ関数にできるでしょう 4714 '%s()' はおそらく長過ぎます サブ関数に分割した方がよさそうです 4715 このファイル中の関数の平均行数が大きすぎます このプログラムのモジュール化のレビューをすることは有益かもしれません 4716 '%s()' は高いパスカウントを持っています テストするのは困難かもしれません 4717 '%s()' は非常に高いパスカウントを持っており テストするのは難しいかも知れません 4718 '%s()' はおそらくテストできません サブ関数に分割するべきです 4901 メトリックス ファイル '%s' を作成できません 環境変数 QACOUTPATH の値を確認するか '- OP' を使用して下さい 4902 メトリックス ファイル '%s' をオープンできません ファイルのパーミッションを確認して下さい 4903 メトリックス ファイル '%s' への書き込みができません ファイルのパーミッションを確認して下さい 4904 メトリックス ファイル '%s' への書き込みができません ファイルのパーミッションを確認して下さい 4905 データベース ファイル '%s' を作成できません 4906 データベース ファイル '%s' をオープンできません ファイルのパーミッションを確認して下さい 4907 データベース ファイル '%s' を読み込むことができません ファイルのパーミッションを確認して下さい 2003 Programming Research Limited 51

52 警告番号 メッセージ 4908 データベース ファイル '%s' への書き込みができません ファイルのパーミッションを確認して下さい 4909 ソースファイル名 '%s' が正しくありません 4910 ログ ファイル '%s' が開けません イルのパーミッションを確認して下さい 4911 ログ ファイル '%s' への書き込みができません ファイルのパーミッションを確認して下さい 2003 Programming Research Limited 52

Microsoft PowerPoint - CproNt02.ppt [互換モード]

Microsoft PowerPoint - CproNt02.ppt [互換モード] 第 2 章 C プログラムの書き方 CPro:02-01 概要 C プログラムの構成要素は関数 ( プログラム = 関数の集まり ) 関数は, ヘッダと本体からなる 使用する関数は, プログラムの先頭 ( 厳密には, 使用場所より前 ) で型宣言 ( プロトタイプ宣言 ) する 関数は仮引数を用いることができる ( なくてもよい ) 関数には戻り値がある ( なくてもよい void 型 ) コメント

More information

R2.7 ポインタの型に気を付ける R2.7.1 (1) ポインタ型は 他のポインタ型及び整数型と相互に変換してはならない ただし データへのポインタ型における void* 型との相互変換は除く (2) ポインタ型は 他のポインタ型 及びポインタ型のデータ幅未満の整数型と相互に変換してはならない た

R2.7 ポインタの型に気を付ける R2.7.1 (1) ポインタ型は 他のポインタ型及び整数型と相互に変換してはならない ただし データへのポインタ型における void* 型との相互変換は除く (2) ポインタ型は 他のポインタ型 及びポインタ型のデータ幅未満の整数型と相互に変換してはならない た [ 信頼性 1] R1 領域は初期化し 大きさに気を付けて使用する R1.1 領域は 初期化してから使用する R1.1.1 自動変数は宣言時に初期化する または値を使用する直前に初期値を代入する 9.1 R9.1 EXP33-C -456 R1.1.2 const 型変数は 宣言時に初期化する EXP40-C -456 R1.2 初期化は過不足無いことが分かるように記述する R1.2.1 R1.2.2

More information

RX ファミリ用 C/C++ コンパイラ V.1.00 Release 02 ご使用上のお願い RX ファミリ用 C/C++ コンパイラの使用上の注意事項 4 件を連絡します #pragma option 使用時の 1 または 2 バイトの整数型の関数戻り値に関する注意事項 (RXC#012) 共用

RX ファミリ用 C/C++ コンパイラ V.1.00 Release 02 ご使用上のお願い RX ファミリ用 C/C++ コンパイラの使用上の注意事項 4 件を連絡します #pragma option 使用時の 1 または 2 バイトの整数型の関数戻り値に関する注意事項 (RXC#012) 共用 RX ファミリ用 C/C++ コンパイラ V.1.00 Release 02 ご使用上のお願い RX ファミリ用 C/C++ コンパイラの使用上の注意事項 4 件を連絡します #pragma option 使用時の 1 または 2 バイトの整数型の関数戻り値に関する注意事項 (RXC#012) 共用体型のローカル変数を文字列操作関数で操作する場合の注意事項 (RXC#013) 配列型構造体または共用体の配列型メンバから読み出した値を動的初期化に用いる場合の注意事項

More information

char int float double の変数型はそれぞれ 文字あるいは小さな整数 整数 実数 より精度の高い ( 数値のより大きい より小さい ) 実数 を扱う時に用いる 備考 : 基本型の説明に示した 浮動小数点 とは数値を指数表現で表す方法である 例えば は指数表現で 3 書く

char int float double の変数型はそれぞれ 文字あるいは小さな整数 整数 実数 より精度の高い ( 数値のより大きい より小さい ) 実数 を扱う時に用いる 備考 : 基本型の説明に示した 浮動小数点 とは数値を指数表現で表す方法である 例えば は指数表現で 3 書く 変数 入出力 演算子ここまでに C 言語プログラミングの様子を知ってもらうため printf 文 変数 scanf 文 if 文を使った簡単なプログラムを紹介した 今回は変数の詳細について習い それに併せて使い方が増える入出力処理の方法を習う また 演算子についての復習と供に新しい演算子を紹介する 変数の宣言プログラムでデータを取り扱う場合には対象となるデータを保存する必要がでてくる このデータを保存する場所のことを

More information

バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科

バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科 バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科 ポインタ変数の扱い方 1 ポインタ変数の宣言 int *p; double *q; 2 ポインタ変数へのアドレスの代入 int *p; と宣言した時,p がポインタ変数 int x; と普通に宣言した変数に対して, p = &x; は x のアドレスのポインタ変数 p への代入 ポインタ変数の扱い方 3 間接参照 (

More information

第 2 章インタフェース定義言語 (IDL) IDL とは 言語や OS に依存しないインタフェース定義を行うためのインタフェース定義言語です CORBA アプリケーションを作成する場合は インタフェースを定義した IDL ファイルを作成する必要があります ここでは IDL の文法や IDL ファイ

第 2 章インタフェース定義言語 (IDL) IDL とは 言語や OS に依存しないインタフェース定義を行うためのインタフェース定義言語です CORBA アプリケーションを作成する場合は インタフェースを定義した IDL ファイルを作成する必要があります ここでは IDL の文法や IDL ファイ 第 2 章インタフェース定義言語 (IDL) IDL とは 言語や OS に依存しないインタフェース定義を行うためのインタフェース定義言語です CORBA アプリケーションを作成する場合は インタフェースを定義した IDL ファイルを作成する必要があります ここでは IDL の文法や IDL ファイルの作成方法 コンパイル方法について説明します IDL ファイルの作成にあたっては INTERSTAGE

More information

プログラミング実習I

プログラミング実習I プログラミング実習 I 05 関数 (1) 人間システム工学科井村誠孝 [email protected] 関数とは p.162 数学的には入力に対して出力が決まるもの C 言語では入出力が定まったひとまとまりの処理 入力や出力はあるときもないときもある main() も関数の一種 何かの仕事をこなしてくれる魔法のブラックボックス 例 : printf() 関数中で行われている処理の詳細を使う側は知らないが,

More information

プログラミング実習I

プログラミング実習I プログラミング実習 I 03 変数と式 人間システム工学科井村誠孝 [email protected] 3.1 変数と型 変数とは p.60 C 言語のプログラム中で, 入力あるいは計算された数や文字を保持するには, 変数を使用する. 名前がついていて値を入れられる箱, というイメージ. 変数定義 : 変数は変数定義 ( 宣言 ) してからでないと使うことはできない. 代入 : 変数には値を代入できる.

More information

JavaプログラミングⅠ

JavaプログラミングⅠ Java プログラミング Ⅰ 12 回目クラス 今日の講義で学ぶ内容 クラスとは クラスの宣言と利用 クラスの応用 クラス クラスとは 異なる複数の型の変数を内部にもつ型です 直観的に表現すると int 型や double 型は 1 1 つの値を管理できます int 型の変数 配列型は 2 5 8 6 3 7 同じ型の複数の変数を管理できます 配列型の変数 ( 配列変数 ) クラスは double

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 講座準備 講座資料は次の URL から DL 可能 https://goo.gl/jnrfth 1 ポインタ講座 2017/01/06,09 fumi 2 はじめに ポインタはC 言語において理解が難しいとされる そのポインタを理解することを目的とする 講座は1 日で行うので 詳しいことは調べること 3 はじめに みなさん復習はしましたか? 4 & 演算子 & 演算子を使うと 変数のアドレスが得られる

More information

株式会社アルウィン C 言語コーディング規約 ver.0.1

株式会社アルウィン C 言語コーディング規約 ver.0.1 C 言語コーディング規約 ver.0.1 1. はじめに本コーディング規約は ( 株 ) アルウィン社内で作成する C 言語ソースコードの可読性 メンテナンス性の向上 丌具合の混入を防ぎやすくするための記述方法及び 推奨する記述方法を記述した文書である 2. 目的 本コーディング規約は ソースコードの可読性 メンテナンス性の向上 丌具合の混入 を可能な限り防ぎ 品質の高いソースコードを作成する一助とすることを目的とする

More information

目 次 1. はじめに...3 2. QA C4.5.3J CD-ROM の 内 容...3 3. 最 小 システム 構 成 の 推 奨 値...4 4. QA C PC 版 のインストール...4 5. ライセンスのインストール インストール...5 5.1. LM-HostID ( )... 5

目 次 1. はじめに...3 2. QA C4.5.3J CD-ROM の 内 容...3 3. 最 小 システム 構 成 の 推 奨 値...4 4. QA C PC 版 のインストール...4 5. ライセンスのインストール インストール...5 5.1. LM-HostID ( )... 5 リリースノート QA C PC 版 Version 4.5.3J 2003/10/10 Version1.04 2003 Programming Research Ltd 目 次 1. はじめに...3 2. QA C4.5.3J CD-ROM の 内 容...3 3. 最 小 システム 構 成 の 推 奨 値...4 4. QA C PC 版 のインストール...4 5. ライセンスのインストール

More information

02: 変数と標準入出力

02: 変数と標準入出力 C プログラミング入門 基幹 7 ( 水 5) 13: 構造体 Linux にログインし 以下の講義ページを開いておくこと http://www-it.sci.waseda.ac.jp/ teachers/w483692/cpr1/ 2016-07-06 1 例題 : 多角形の面積 n = 5 (5 角形 ) の例 n 1 n 1 1 p 1 T 0 S = i=0 p 0 T i = i=0 2

More information

PowerPoint Presentation

PowerPoint Presentation 製品ソフトウェアのセットアップ手順 UNIX/Linux 編 1. セットアップファイルの選択開発環境 / 実行環境 / バージョン /Hotfix/ インストール先 OS 2. 対象セットアップファイルのダウンロード開発環境の場合は 2 つのファイルが対象 3. ソフトウェア要件の確認 4. ソフトウェアのインストール 5. ライセンスの認証 1 1. セットアップファイルの選択 選択項目選択肢該当チェック

More information

インテル(R) Visual Fortran コンパイラ 10.0

インテル(R) Visual Fortran コンパイラ 10.0 インテル (R) Visual Fortran コンパイラー 10.0 日本語版スペシャル エディション 入門ガイド 目次 概要インテル (R) Visual Fortran コンパイラーの設定はじめに検証用ソースファイル適切なインストールの確認コンパイラーの起動 ( コマンドライン ) コンパイル ( 最適化オプションなし ) 実行 / プログラムの検証コンパイル ( 最適化オプションあり ) 実行

More information

フローチャート自動生成ツール yflowgen の使い方 目次 1 はじめに 本ツールの機能 yflowgen.exe の使い方 yflowgen.exe の実行方法 制限事項 生成したファイル (gml ファイル形式 ) の開

フローチャート自動生成ツール yflowgen の使い方 目次 1 はじめに 本ツールの機能 yflowgen.exe の使い方 yflowgen.exe の実行方法 制限事項 生成したファイル (gml ファイル形式 ) の開 フローチャート自動生成ツール yflowgen の使い方 目次 1 はじめに...2 2 本ツールの機能...2 3 yflowgen.exe の使い方...3 3.1 yflowgen.exe の実行方法...3 3.2 制限事項...3 3.3 生成したファイル (gml ファイル形式 ) の開き方...4 3.3.1 yed Graph Editor を使って開く...4 3.3.2 yed

More information

JavaプログラミングⅠ

JavaプログラミングⅠ Java プログラミング Ⅰ 6 回目 if 文と if else 文 今日の講義で学ぶ内容 関係演算子 if 文と if~else 文 if 文の入れ子 関係演算子 関係演算子 ==,!=, >, >=,

More information

Java講座

Java講座 ~ 第 1 回 ~ 情報科学部コンピュータ科学科 2 年竹中優 プログラムを書く上で Hello world 基礎事項 演算子 構文 2 コメントアウト (//, /* */, /** */) をしよう! インデントをしよう! 変数などにはわかりやすい名前をつけよう! 要するに 他人が見て理解しやすいコードを書こうということです 3 1. Eclipse を起動 2. ファイル 新規 javaプロジェクト

More information

Team Foundation Server 2018 を使用したバージョン管理 補足資料

Team Foundation Server 2018 を使用したバージョン管理 補足資料 Team Foundation Server 2018 を使用したバージョン管理 Magic xpa 3.0/Magic xpa 2.5/uniPaaS V1Plus 補足資料 マジックソフトウェア ジャパン株式会社 2018 年 8 月 24 日 本ドキュメントは Magic xpa 3.0/Magic xpa 2.5/uniPaaS V1Plus で Team Foundation Server(

More information

Microsoft PowerPoint - 09.pptx

Microsoft PowerPoint - 09.pptx 情報処理 Ⅱ 第 9 回 2014 年 12 月 22 日 ( 月 ) 関数とは なぜ関数 関数の分類 自作関数 : 自分で定義する. ユーザ関数 ユーザ定義関数 などともいう. 本日のテーマ ライブラリ関数 : 出来合いのもの.printf など. なぜ関数を定義するのか? 処理を共通化 ( 一般化 ) する プログラムの見通しをよくする 機能分割 ( モジュール化, 再利用 ) 責任 ( あるいは不具合の発生源

More information

PowerPoint Presentation

PowerPoint Presentation プログラミング基礎 第 2 週 (4,5,6 回 ) 2011-10-07 出村公成 この資料の再配布を禁止します 予定 プログラミング入門 (45 分 ) 変数 入出力 分岐 演習 (90 分 ) タッチタイプ練習 統合開発環境 Codeblocksの使い方 教科書例題の打ち込みと実行 プログラミング入門 C 言語の簡単な例を体験 変数 入出力 分岐 プログラムの例リスト 2.1 改 #include

More information

プログラミング基礎

プログラミング基礎 C プログラミング Ⅰ 授業ガイダンス C 言語の概要プログラム作成 実行方法 授業内容について 授業目的 C 言語によるプログラミングの基礎を学ぶこと 学習内容 C 言語の基礎的な文法 入出力, 変数, 演算, 条件分岐, 繰り返し, 配列,( 関数 ) C 言語による簡単な計算処理プログラムの開発 到達目標 C 言語の基礎的な文法を理解する 簡単な計算処理プログラムを作成できるようにする 授業ガイダンス

More information

スクールCOBOL2002

スクールCOBOL2002 3. 関連資料 - よく使われる機能の操作方法 - (a) ファイルの入出力処理 - 順ファイル等を使ったプログラムの実行 - - 目次 -. はじめに 2. コーディング上の指定 3. 順ファイルの使用方法 4. プリンタへの出力方法 5. 索引ファイルの使用方法 6. 終わりに 2 . はじめに 本説明書では 簡単なプログラム ( ファイル等を使わないプログラム ) の作成からコンパイル 実行までの使用方法は既に理解しているものとして

More information

PowerPoint Presentation

PowerPoint Presentation 工学部 6 7 8 9 10 組 ( 奇数学籍番号 ) 担当 : 長谷川英之 情報処理演習 第 7 回 2010 年 11 月 18 日 1 今回のテーマ 1: ポインタ 変数に値を代入 = 記憶プログラムの記憶領域として使用されるものがメモリ ( パソコンの仕様書における 512 MB RAM などの記述はこのメモリの量 ) RAM は多数のコンデンサの集合体 : 電荷がたまっている (1)/ いない

More information

CubePDF ユーザーズマニュアル

CubePDF ユーザーズマニュアル CubePDF ユーザーズマニュアル 2018.11.22 第 13 版 1 1. PDF への変換手順 CubePDF は仮想プリンターとしてインストールされます そのため Web ブラウザや Microsoft Word, Excel, PowerPoint など印刷ボタンのあるアプリケーションであればどれでも 次の 3 ステップで PDF へ変換することができます 1. PDF 化したいものを適当なアプリケーションで表示し

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 2018/10/05 竹島研究室創成課題 第 2 回 C 言語演習 変数と演算 東京工科大学 加納徹 前回の復習 Hello, world! と表示するプログラム 1 #include 2 3 int main(void) { 4 printf("hello, world! n"); 5 return 0; 6 } 2 プログラム実行の流れ 1. 作業ディレクトリへの移動 $ cd

More information

Microsoft Word - Cプログラミング演習(11)

Microsoft Word - Cプログラミング演習(11) 第 11 回 (7/2) 4. いくつかのトピック (1) ビットごとの演算子 C 言語には, 次のようなビット単位で演算を行う特別な演算子が用意されている & ビットごとの AND ビットごとの OR ^ ビットごとの XOR( 排他的論理和 ) ~ 1 の補数これらの演算子は文字型と整数型で機能し, 浮動小数点数型では使用できない AND, OR, XOR は, それぞれのオペランドの対応するビットを比較して結果を返す

More information

書式に示すように表示したい文字列をダブルクォーテーション (") の間に書けば良い ダブルクォーテーションで囲まれた文字列は 文字列リテラル と呼ばれる プログラム中では以下のように用いる プログラム例 1 printf(" 情報処理基礎 "); printf("c 言語の練習 "); printf

書式に示すように表示したい文字列をダブルクォーテーション () の間に書けば良い ダブルクォーテーションで囲まれた文字列は 文字列リテラル と呼ばれる プログラム中では以下のように用いる プログラム例 1 printf( 情報処理基礎 ); printf(c 言語の練習 ); printf 情報処理基礎 C 言語についてプログラミング言語は 1950 年以前の機械語 アセンブリ言語 ( アセンブラ ) の開発を始めとして 現在までに非常に多くの言語が開発 発表された 情報処理基礎で習う C 言語は 1972 年にアメリカの AT&T ベル研究所でオペレーションシステムである UNIX を作成するために開発された C 言語は現在使われている多数のプログラミング言語に大きな影響を与えている

More information

目次 1. 変換の対象 砂防指定地 XML 作成メニュー シェープファイルからXMLへ変換 砂防指定地 XMLとシェープファイルの対応.csv 変換処理 CSVファイルによる属性指定... 5

目次 1. 変換の対象 砂防指定地 XML 作成メニュー シェープファイルからXMLへ変換 砂防指定地 XMLとシェープファイルの対応.csv 変換処理 CSVファイルによる属性指定... 5 砂防指定地 XML 作成説明書 2012/12/18 有限会社ジオ コーチ システムズ http://www.geocoach.co.jp/ [email protected] 砂防指定地 XML 作成 プログラムについての説明書です この説明書は次のバージョンに対応しています アプリケーション名バージョン日付 砂防指定地 XML 作成 7.0.5 2012/12/18 プログラムのインストールについては

More information

02: 変数と標準入出力

02: 変数と標準入出力 C プログラミング入門 基幹 2 ( 月 4) 11: 動的メモリ確保 Linux にログインし 以下の講義ページを開いておくこと http://www-it.sci.waseda.ac.jp/ teachers/w483692/cpr1/ 2014-06-22 1 まとめ : ポインタを使った処理 内容 説明 呼び出し元の変数を書き換える第 9 回 文字列を渡す 配列を渡す 第 10 回 ファイルポインタ

More information

24th Embarcadero Developer Camp

24th Embarcadero Developer Camp 17 Th Developer Camp B4 Delphi/C++Builder テクニカルワークショップ Delphi / C++Builder 旧バージョンアプリケーションの移行 エンバカデロ テクノロジーズサポートチーム with 高橋智宏 1 17 Th Developer Camp Delphi Q1 2 midas.dll Q. 別々のバージョンで作成したデータベースアプリケーションがあります

More information

Microsoft PowerPoint - A3② JaSST_MISRA2004ソースコード品質診断.ppt

Microsoft PowerPoint - A3② JaSST_MISRA2004ソースコード品質診断.ppt ISO/IEC9126 & MISRA-C:2004 ベースソースコード品質診断 ~ MISRA-C:2004 ベース品質診断のご紹介 ~ 株式会社東陽テクニカソフトウェア ソリューション MISRA とは Motor Industry Software Reliability Association の略 ヨーロッパ自動車技術会 (MIRA) の下部組織 MIRA: Motor Industry

More information

PowerPoint Presentation

PowerPoint Presentation : ソフトウェアのインストール Development Hub COBOL Server セットアップファイルのダウンロード Eclipse 版 セットアップファイルのダウンロード ソフトウェア要件の確認 ソフトウェア要件の確認 ソフトウェアのインストール ソフトウェアのインストール ライセンス認証 (DevHub COBOL Server 版のライセンスを利用 ) ライセンス認証 (Eclipse

More information

memo

memo 数理情報工学演習第一 C プログラミング演習 ( 第 5 回 ) 2015/05/11 DEPARTMENT OF MATHEMATICAL INFORMATICS 1 今日の内容 : プロトタイプ宣言 ヘッダーファイル, プログラムの分割 課題 : 疎行列 2 プロトタイプ宣言 3 C 言語では, 関数や変数は使用する前 ( ソースの上のほう ) に定義されている必要がある. double sub(int

More information

レベルアップ詳細情報 < 製品一覧 > 製品名 バージョン < 追加機能一覧 > 管理番号 内容 説明書参照章 カナ文字拡張対応 < 改善一覧 > 管理番号 内容 対象バージョン 説明書参照章 文字列のコピー ペースト改善 ~ 子画面の表示方式 ~ 履歴の詳細情報 ~ タブの ボタン ~ 接続時の管

レベルアップ詳細情報 < 製品一覧 > 製品名 バージョン < 追加機能一覧 > 管理番号 内容 説明書参照章 カナ文字拡張対応 < 改善一覧 > 管理番号 内容 対象バージョン 説明書参照章 文字列のコピー ペースト改善 ~ 子画面の表示方式 ~ 履歴の詳細情報 ~ タブの ボタン ~ 接続時の管 レベルアップ詳細情報 < 製品一覧 > 製品名 バージョン < 追加機能一覧 > 管理番号 内容 説明書参照章 カナ文字拡張対応 < 改善一覧 > 管理番号 内容 対象バージョン 説明書参照章 文字列のコピー ペースト改善 ~ 子画面の表示方式 ~ 履歴の詳細情報 ~ タブの ボタン ~ 接続時の管理情報の英小文字対応 ~ 管理ホスト情報の表示 グループ情報と詳細情報の表示 ~ 検索条件設定時の一覧画面の操作

More information

プログラミング基礎I(再)

プログラミング基礎I(再) 山元進 クラスとは クラスの宣言 オブジェクトの作成 クラスのメンバー フィールド 変数 配列 メソッド メソッドとは メソッドの引数 戻り値 変数の型を拡張したもの 例えば車のデータベース 車のメーカー 車種 登録番号などのデータ データベースの操作 ( 新規データのボタンなど ) プログラムで使う部品の仕様書 そのクラスのオブジェクトを作ると初めて部品になる 継承 などの仕組みにより カスタマイズが安全

More information

<< 目次 >> 1 PDF コンバータのインストール ライセンスコードの入力 PDF にフォントを埋め込みたい場合の設定 PDF オートコンバータ EX で使用しない場合 PDF コンバータ単体で使用する場合の説明 PDF コンバータのアン

<< 目次 >> 1 PDF コンバータのインストール ライセンスコードの入力 PDF にフォントを埋め込みたい場合の設定 PDF オートコンバータ EX で使用しない場合 PDF コンバータ単体で使用する場合の説明 PDF コンバータのアン PDF コンバータ V5.X インストール ガイド Page0 > 1 PDF コンバータのインストール... 2 2 ライセンスコードの入力... 6 3 PDF にフォントを埋め込みたい場合の設定... 9 4 PDF オートコンバータ EX で使用しない場合 PDF コンバータ単体で使用する場合の説明... 10 5 PDF コンバータのアンインストール... 16 6 お問合せ...

More information

解答編 第 9 章文字データの取り扱い 演習問題 9.1 文法事項 1 ) コンピュータにおける 文字データの取り扱いについて説明しなさい コンピュータでは 文字に整数の番号を割り当てて ( コード化して ) 文字コードとして扱います 実際に用いられる文字コードとして ASCII コード EUC コ

解答編 第 9 章文字データの取り扱い 演習問題 9.1 文法事項 1 ) コンピュータにおける 文字データの取り扱いについて説明しなさい コンピュータでは 文字に整数の番号を割り当てて ( コード化して ) 文字コードとして扱います 実際に用いられる文字コードとして ASCII コード EUC コ 解答編 第 9 章文字データの取り扱い 演習問題 9.1 文法事項 1 ) コンピュータにおける 文字データの取り扱いについて説明しなさい コンピュータでは 文字に整数の番号を割り当てて ( コード化して ) 文字コードとして扱います 実際に用いられる文字コードとして ASCII コード EUC コード JIS コード SJIS コードなど 様々な規格が存在します 2 ) C 言語の文字型は整数型の一種と考えられるが

More information

やってみようINFINITY-製品仕様書 品質評価表 メタデータ 編-

やってみようINFINITY-製品仕様書 品質評価表 メタデータ 編- やってみよう for Wingneo INFINITY( ) はじめに 目的このプログラムは 空間データ製品仕様書作成を支援するシステムです 空間データ製品仕様書 (Microsoft Word 文書 ) を作成する場合は Microsoft Word がインストールされている必要があります 操作手順 製品仕様書作成から品質評価表を経由して簡易メタデータを作成し 国土交通省国土地理院のメタデータエディターに取り込みまでを解説しています

More information

ガイダンス

ガイダンス 情報科学 B 第 2 回変数 1 今日やること Java プログラムの書き方 変数とは何か? 2 Java プログラムの書き方 3 作業手順 Java 言語を用いてソースコードを記述する (Cpad エディタを使用 ) コンパイル (Cpad エディタを使用 ) 実行 (Cpad エディタを使用 ) エラーが出たらどうしたらよいか??? 4 書き方 これから作成する Hello.java 命令文 メソッドブロック

More information

ユーティリティ 管理番号 内容 対象バージョン 157 管理情報バッチ登録コマンド (utliupdt) のメッセージ出力に対し リダイレクトまたはパイプを使用すると メッセージが途中までしか出 力されないことがある 267 転送集計コマンド (utllogcnt) でファイル ID とホスト名の組

ユーティリティ 管理番号 内容 対象バージョン 157 管理情報バッチ登録コマンド (utliupdt) のメッセージ出力に対し リダイレクトまたはパイプを使用すると メッセージが途中までしか出 力されないことがある 267 転送集計コマンド (utllogcnt) でファイル ID とホスト名の組 レベルアップ詳細情報 < 製品一覧 > 製品名 バージョン HULFT BB クライアント for Windows Type BB1 6.3.0 HULFT BB クライアント for Windows Type BB2 6.3.0 < 対応 OS> Windows2000, WindowsXP, WindowsServer2003 < 追加機能一覧 > HULFT BB クライアント 管理番号 内容

More information

目次 1. 回答作成手順 2 2. ツールの起動 3 3. 一般情報の入力 6 4. 成分表の入力 9 5. 依頼者情報の入力 エラーチェック XMLファイルの作成 動作設定 ( 任意 ) ( ご参考 ) 各種シートのボタン機能 ( ご参

目次 1. 回答作成手順 2 2. ツールの起動 3 3. 一般情報の入力 6 4. 成分表の入力 9 5. 依頼者情報の入力 エラーチェック XMLファイルの作成 動作設定 ( 任意 ) ( ご参考 ) 各種シートのボタン機能 ( ご参 JAMP MSDSplus 作成マニュアル (Ver.4.0 対応 ) 第 1.00 版 2012.4.2 富士通株式会社 お願い 本資料は富士通グループのお取引先内でのみ 且つ当社グループ向けの調査回答品にのみ利用可能です 目次 1. 回答作成手順 2 2. ツールの起動 3 3. 一般情報の入力 6 4. 成分表の入力 9 5. 依頼者情報の入力 13 6. エラーチェック 14 7. XMLファイルの作成

More information

情報工学実験 C コンパイラ第 2 回説明資料 (2017 年度 ) 担当 : 笹倉 佐藤

情報工学実験 C コンパイラ第 2 回説明資料 (2017 年度 ) 担当 : 笹倉 佐藤 情報工学実験 C コンパイラ第 2 回説明資料 (2017 年度 ) 担当 : 笹倉 佐藤 2017.12.7 前回の演習問題の解答例 1. 四則演算のできる計算機のプログラム ( 括弧も使える ) 2. 実数の扱える四則演算の計算機のプログラム ( 実数 も というより実数 が が正しかったです ) 3. 変数も扱える四則演算の計算機のプログラム ( 変数と実数が扱える ) 演習問題 1 で行うべきこと

More information

Section1_入力用テンプレートの作成

Section1_入力用テンプレートの作成 入力用テンプレートの作成 1 Excel には 効率よく かつ正確にデータを入力するための機能が用意されています このセクションでは ユーザー設定リストや入力規則 関数を利用した入力用テンプレートの作成やワークシート操作について学習します STEP 1 ユーザー設定リスト 支店名や商品名など 頻繁に利用するユーザー独自の連続データがある場合には ユーザー設定リスト に登録しておけば オートフィル機能で入力することができ便利です

More information

Microsoft Word - ModelAnalys操作マニュアル_

Microsoft Word - ModelAnalys操作マニュアル_ モデル分析アドイン操作マニュアル Ver.0.5.0 205/0/05 株式会社グローバルアシスト 目次 概要... 3. ツール概要... 3.2 対象... 3 2 インストールと設定... 4 2. モデル分析アドインのインストール... 4 2.2 モデル分析アドイン画面の起動... 6 3 モデル分析機能... 7 3. 要求分析機能... 7 3.. ID について... 0 3.2 要求ツリー抽出機能...

More information

intra-mart Accel Platform — IM-共通マスタ スマートフォン拡張プログラミングガイド   初版  

intra-mart Accel Platform — IM-共通マスタ スマートフォン拡張プログラミングガイド   初版   Copyright 2012 NTT DATA INTRAMART CORPORATION 1 Top 目次 1. 改訂情報 2. IM- 共通マスタの拡張について 2.1. 前提となる知識 2.1.1. Plugin Manager 2.2. 表記について 3. 汎用検索画面の拡張 3.1. 動作の概要 3.1.1. 汎用検索画面タブの動作概要 3.2. 実装の詳細 3.2.1. 汎用検索画面タブの実装

More information

Microsoft PowerPoint - lec10.ppt

Microsoft PowerPoint - lec10.ppt 今日の内容, とポインタの組み合わせ, 例題 1. 住所録例題 2. と関数とは. を扱う関数. 例題 3. のリスト とポインタの組み合わせ 今日の到達目標 自分で を定義する 自分で定義したについて, 配列やポインタを作成する データ型 基本データ型 char 文字 (1 文字 ) int 整数 double 浮動小数など その他のデータ型配列 データの並び ( 文字列も, 文字の並び ) ポインタ

More information

開発・運用時のガイド JDK8への移行に伴う留意点 [UNIX]

開発・運用時のガイド JDK8への移行に伴う留意点 [UNIX] 開発 運用時のガイド [UNIX] JDK8 への移行に伴う留意点 2015.10 O c t o b e r はじめに 本書は 開発 運用フェーズで使用するドキュメントとして Java TM Development Kit 8 への移行に伴う 留意点について記述しています 1. 対象とする読者本書は Java TM Development Kit 8 を使用し システムを設計 構築 運用する立場にある方を対象としています

More information

目次 第 1 章はじめに 本ソフトの概要... 2 第 2 章インストール編 ソフトの動作環境を確認しましょう ソフトをコンピュータにセットアップしましょう 動作を確認しましょう コンピュータからアンインストー

目次 第 1 章はじめに 本ソフトの概要... 2 第 2 章インストール編 ソフトの動作環境を確認しましょう ソフトをコンピュータにセットアップしましょう 動作を確認しましょう コンピュータからアンインストー JS 管理ファイル作成支援ソフト 工事用 Ver.4.0 インストールマニュアル 操作マニュアル 日本下水道事業団 目次 第 1 章はじめに... 1 1-1 本ソフトの概要... 2 第 2 章インストール編... 3 2-1 ソフトの動作環境を確認しましょう... 4 2-2 ソフトをコンピュータにセットアップしましょう... 5 2-3 動作を確認しましょう... 8 2-4 コンピュータからアンインストールする方法...

More information

gengo1-11

gengo1-11 関数の再帰定義 自然数 n の階乗 n! を計算する関数を定義してみる 引数は整数 返却値も整数 n! = 1*2*3*... * (n 1)*n である ただし 0! = 1 とする int factorial(int n) int i, tmp=1; if( n>0 ) for(i=1; i

More information

Shareresearchオンラインマニュアル

Shareresearchオンラインマニュアル Chrome の初期設定 以下の手順で設定してください 1. ポップアップブロックの設定 2. 推奨する文字サイズの設定 3. 規定のブラウザに設定 4. ダウンロードファイルの保存先の設定 5.PDFレイアウトの印刷設定 6. ランキングやハイライトの印刷設定 7. 注意事項 なお 本マニュアルの内容は バージョン 61.0.3163.79 の Chrome を基に説明しています Chrome の設定手順や画面については

More information

Rational Roseモデルの移行 マニュアル

Rational Roseモデルの移行 マニュアル Model conversion from Rational Rose by SparxSystems Japan Rational Rose モデルの移行マニュアル (2012/1/12 最終更新 ) 1. はじめに このガイドでは 既に Rational( 現 IBM) Rose ( 以下 Rose と表記します ) で作成された UML モデルを Enterprise Architect で利用するための作業ガイドです

More information

Web型iEDIシステム操作説明書

Web型iEDIシステム操作説明書 Web 型インターネット EDI サービス 操作説明書 ( サプライヤ編 添付文書機能 ) 2018 年 11 月 TOSHIBA Corporation 2000-2017 All Rights Reserved. - 1 - 名称 Web 型インターネット EDI サービス操作説明書 ( サプライヤ編 添付文書 機能 ) 更新記録 REV 番号日付内容承認調査担当 1.0 2007/1/26 新規発行

More information

NEC COBOL Enterprise Edition Developer クライアントライセンス V2.0 COBOL Enterprise Edition Developer クライアントライセンス V2.0 (1 年間保守付 ) COBOL Enterprise Edition Develo

NEC COBOL Enterprise Edition Developer クライアントライセンス V2.0 COBOL Enterprise Edition Developer クライアントライセンス V2.0 (1 年間保守付 ) COBOL Enterprise Edition Develo NEC COBOL Enterprise Edition Developer クライアントライセンス V2.0 COBOL Enterprise Edition Developer クライアントライセンス V2.0 (1 年間保守付 ) COBOL Enterprise Edition Developer クライアントライセンス V2.0 (1 年間時間延長保守付 ) セットアップカード ごあいさつ

More information

はじめに - マニュアルエディター機能の概要 - Dojoの種類とマニュアルエディター機能解除について マニュアルレイアウトの生成 - マニュアルレイアウトの生成 基本編集 4 - 表紙の挿入 4 - 目次の挿入 5 - 一括変換 6 4 マニュアルビルド 9 4- MS Word 9

はじめに - マニュアルエディター機能の概要 - Dojoの種類とマニュアルエディター機能解除について マニュアルレイアウトの生成 - マニュアルレイアウトの生成 基本編集 4 - 表紙の挿入 4 - 目次の挿入 5 - 一括変換 6 4 マニュアルビルド 9 4- MS Word 9 操作説明書 マニュアルエディター編 本紙は Dojo マニュアルエディターで作成したサンプルコンテンツです 株式会社テンダ 本テキストは Dojo の [ マニュアルエディター機能解除 ] ライセンスを使用して作成しております はじめに - マニュアルエディター機能の概要 - Dojoの種類とマニュアルエディター機能解除について マニュアルレイアウトの生成 - マニュアルレイアウトの生成 基本編集

More information

02: 変数と標準入出力

02: 変数と標準入出力 C プログラミング入門 総機 1 ( 月 1) 11: 動的メモリ確保 Linux にログインし 以下の講義ページを開いておくこと http://www-it.sci.waseda.ac.jp/ teachers/w483692/cpr1/ 2015-06-22 1 まとめ : ポインタを使った処理 内容 説明 呼び出し元の変数を書き換える第 9 回 文字列を渡す 配列を渡す 第 10 回 ファイルポインタ

More information

ごあいさつ このたびは ESMPRO/AC Advance マルチサーバオプション Ver3.6(1 ライセンス ) をお買い上げ頂き 誠にありがとうございます 本書は お買い上げ頂きましたセットの内容確認 セットアップの内容 注意事項を中心に構成されています ESMPRO/AC Advance マ

ごあいさつ このたびは ESMPRO/AC Advance マルチサーバオプション Ver3.6(1 ライセンス ) をお買い上げ頂き 誠にありがとうございます 本書は お買い上げ頂きましたセットの内容確認 セットアップの内容 注意事項を中心に構成されています ESMPRO/AC Advance マ NEC Express5800 シリーズ ESMPRO /AC Advance マルチサーバオプション Ver3.6 1 ライセンス セットアップカード 1 ごあいさつ このたびは ESMPRO/AC Advance マルチサーバオプション Ver3.6(1 ライセンス ) をお買い上げ頂き 誠にありがとうございます 本書は お買い上げ頂きましたセットの内容確認 セットアップの内容 注意事項を中心に構成されています

More information

メソッドのまとめ

メソッドのまとめ メソッド (4) 擬似コードテスト技法 http://java.cis.k.hosei.ac.jp/ 授業の前に自己点検以下のことがらを友達に説明できますか? メソッドの宣言とは 起動とは何ですか メソッドの宣言はどのように書きますか メソッドの宣言はどこに置きますか メソッドの起動はどのようにしますか メソッドの仮引数 実引数 戻り値とは何ですか メソッドの起動にあたって実引数はどのようにして仮引数に渡されますか

More information

インストールマニュアル

インストールマニュアル Install manual by SparxSystems Japan Enterprise Architect 日本語版インストールマニュアル 1 1. はじめに このインストールマニュアルは Enterprise Architect 日本語版バージョン 14.1 をインストールするための マニュアルです インストールには管理者権限が必要です 管理者権限を持つユーザー (Administrator

More information

C 言語の式と文 C 言語の文 ( 関数の呼び出し ) printf("hello, n"); 式 a a+4 a++ a = 7 関数名関数の引数セミコロン 3 < a "hello" printf("hello") 関数の引数は () で囲み, 中に式を書く. 文 ( 式文 ) は

C 言語の式と文 C 言語の文 ( 関数の呼び出し ) printf(hello, n); 式 a a+4 a++ a = 7 関数名関数の引数セミコロン 3 < a hello printf(hello) 関数の引数は () で囲み, 中に式を書く. 文 ( 式文 ) は C 言語復習 C 言語の基礎 来週もこの資料を持参してください C 言語, ソースファイルの作成, コンパイル, 実行 1 C 言語 C 言語プログラミングの手順 とは, 計算機を動かす手順を記述したもの. 計算機に命令を与えて動かすには を作成する ことになる. C 言語はプログラミング言語の 1 個 手続き型言語に分類される. C/C++ は非常に多くの場面で使われる言語 C++ は C 言語をオブジェクト指向に拡張したもの

More information

PDFオートコンバータEX

PDFオートコンバータEX PDF コンバータ V4.X インストール ガイド Page0 > 1 PDF コンバータ 32BIT 版のインストール... 2 2 PDF コンバータ 64BIT 版のインストール... 7 3 PDF にフォントを埋め込みたい場合の設定... 13 4 PDF オートコンバータ EX で使用しない場合 PDF コンバータ単体で使用する場合の説明... 14 5 PDF コンバータのアンインストール...

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 環境設定 (IE11 Edge)(Edge は 国内 + 国外版 国内外 + 翻訳版 のみ ) SRPARTNER では印刷 ダウンロードなどに ActiveX アドオンを使用しており ログイン時にインストールメッセージが表示されます ご使用端末に初期設定いただく必要がございます 以下記載の設定を実施し 設定変更を行ってください 1. 保護モードの解除 1[ コントロールパネル ]-[ インタ -

More information

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 今回のプログラミングの課題 次のステップによって 徐々に難易度の高いプログラムを作成する ( 参照用の番号は よくわかる C 言語 のページ番号 ) 1. キーボード入力された整数 10 個の中から最大のものを答える 2. 整数を要素とする配列 (p.57-59) に初期値を与えておき

More information

目次 1 はじめに 利用条件 動作環境 アドインのインストール アドインの操作方法 アドインの実行 Excel CSV の出力 テンプレートの作成 編集 テンプレートのレイアウト変更 特記

目次 1 はじめに 利用条件 動作環境 アドインのインストール アドインの操作方法 アドインの実行 Excel CSV の出力 テンプレートの作成 編集 テンプレートのレイアウト変更 特記 Excel Export Add-in Manual by SparxSystems Japan Enterprise Architect 用 Excel 出力アドイン利用ガイド バージョン 1.0.0.6 (2018/09/06 更新 ) 1 目次 1 はじめに...3 2 利用条件 動作環境...3 3 アドインのインストール...3 4 アドインの操作方法...4 4.1 アドインの実行...4

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション コンパイラとプログラミング言語 第 3 4 週 プログラミング言語の形式的な記述 2014 年 4 月 23 日 金岡晃 授業計画 第 1 週 (4/9) コンパイラの概要 第 8 週 (5/28) 下向き構文解析 / 構文解析プログラム 第 2 週 (4/16) コンパイラの構成 第 9 週 (6/4) 中間表現と意味解析 第 3 週 (4/23) プログラミング言語の形式的な記述 第 10 週

More information