更新ping送信先を最新情報に更新←
→太陽系の第10惑星
04/11 gccで使うとエラーになるShift-Jisの文字コード
C言語のソースに日本語があると場合によっては次のようなエラーが発生する。(正確に言うと警告なのでエラーではない)
warning: unknown escape sequence: '\' followed by char 0xffffff83
warning: escape sequence out of range for character
このエラーが発生する条件は、次の文字がC言語のソースコード上に含まれる場合である。
表 予 ソ 十 ― 暴 構 能 貼 申 噂 饅 兔 砡 欺 圭 蚕 曾 箪 禄
浬 喀 媾 彌 拿 杤 歃 濬 畚 秉 綵 臀 藹 觸 軆 鐔 鷭 偆 Ы Ⅸ
これには理由があって、2バイト目がシフトJISで「5C」になる文字は「\」を表し、「\」はgccではメタ文字に解釈されるためである。特に文字列の最後に上記の文字を記述すると文法エラーを引き起こす。
これを回避する方法は、上記の文字の直後に「\」を付る。例えば ソ\フト、表\示、予\約 となる。または、シングルクォートで文字列をくくると良い。例えば、'ソフト'、'表示'、'予定'とする。ただし、文字列の最後に上記の文字を記述する場合にはは両者を併用して、シングルクォートでくくり、さらに「\」をつける。例えば'予約\'
これと似たものに2バイト目が@の文字によるエラーがある。こちらとは発生原因も対策も異なる。
トラックバック
都合により表示できません。
コメント
更新ping送信先を最新情報に更新←
→太陽系の第10惑星