本ページは公開が終了した情報の複製であり、掲載時点での情報です。本ページに記載されている内容について各所に問い合わせることはご遠慮下さい。
サポート技術情報

C2018 エラーの原因と解決方法

文書番号: 401172

最終更新日: 2004/04/27


この資料は以下の製品について記述したものです。


概要

この資料は、コンパイル時に発生する以下のエラーの原因と解決方法について説明した ものです。
  コンパイラ エラー: C2018   unknown character 'hexnumber'
  ヘルプやドキュメントの解説
  『ソースファイル内に、指定された 16 進数に相当する ASCII 文字が現れま
    したがこれは誤った文字です。ソースファイルが壊れていることが原因の
    1つとして考えられます。ファイルを編集してエラーが起こった行を調べ
    てください。』

詳細

ヘルプに基づいて、ソースプログラムをお調べ頂いた上で、問題を発見できない場合、 以下の内容についてご検討ください。

全角空白文字が含まれている場合

弊社の C コンパイラは、文字列定数の中に全角文字を含むことはできますが、式や文を 見分けるための空白文字に全角文字の空白を利用することは出来ません。このエラー は、プログラムソースの中に不用な全角の空白文字が入っている場合によく発生する トラブルです。

C/C++ 7.0A をご使用の場合

C/C++ 7.0A をご使用の場合、上記の原因の他に まったく問題のないコメント中の
全角文字部分に以下のようなエラーが発生する場合があります。
  xtension.c
  xtension.c(445) : error C2018: unknown character '0xea'
  xtension.c(445) : error C2018: unknown character '0x92'
  xtension.c(445) : error C2018: unknown character '0xe8'
この現象は、ソースコードの特定の位置に、2バイト文字の1バイト目のコードがある 時に誤ったエラーを発生するというものであり、問題を起こす2バイト文字の1バイト 目のキャラクタにより、エラーの発生する位置が変化しますので、位置は特定できま せん。
この問題は調査の結果、C/C++ 7.0A コンパイラの障害によるものと判明いたしまし
た。この件に関しては、コンパイラの構造上、修正が非常に困難であること、また、 比較的に低工数での回避が策可能であることから、対応を見送らせていただきま
す。どうぞご了承頂きますようお願い申し上げます。

対処方法

全角空白文字が含まれている場合

エラーが発生している行を丹念に調べて全角の空白文字を半角の空白文字に置き換えて ください。

C/C++ 7.0A をご使用の場合

『ソースコードの特定の位置に、2バイト文字の1バイト目がある』という条件を崩す ことで回避できます。具体的にはエラーの発生した行の先頭に半角スペースを挿入す るなどして、エラー位置のキャラクタコードを1バイトずらすことで解決します。
この問題は、C/C++ 7.0A コンパイラ固有の現象であり、他の製品では発生しません。 本件に関して、お客様にご迷惑をお掛けしましたことをお詫び申し上げます。

詳細

  • Visual C++ は、米国 Microsoft Corporation の商標です。

Keywords: C6 C7 KBPRB QC20 VC10 VC15 KB401172
Technology: kbAudDeveloper kbCCompPDS600DOS kbCCompSearch kbQC200 kbvc150 kbVCsearch kbZNotKeyword3 kbZNotKeyword8

inserted by FC2 system