"C2041: 指定された文字 '8' は、基数 '8' に適切な数字ではありません" に関する原因と対処

このコンパイルエラーの原因と対処に関して説明します。

スポンサード リンク

Microsoft Visual C++にて以下のソースでコンパイルエラーが発生します:

コンパイルエラーメッセージ:
error C2041: 指定された文字 '8' は、基数 '8' に適切な数字ではありません。

ソース(バグ有り):

#include<stdio.h>
int main()
{
int a = 08; //8進数で 8 は無効な表現でコンパイルエラー
printf("%d\n",a);
return 0; }


原因:
C言語では、0で始まる数字は8進数として扱われます。

08は8進数として不正な表現なため本コンパイルエラーが発生します。

対処:
07 のように8進数として正しい表現に変更します。

本例では 8 進数として 017 と表現しています。

8×1 プラス 7 で10進数では15となります。


ソース(修正済み):

#include<stdio.h>
int main()
{
int a = 017; //8進数で17は10進数で15
printf("%d\n",a);
return 0; }

スポンサード リンク



[コンパイルエラーコード、メッセージに戻る]