"" に関する原因と対処

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

スポンサード リンク

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

コンパイルエラーメッセージ:
error C2870: '<不明>': 名前空間定義はファイル スコープ、または他の名前空間定義の中に置かなければなりません。

ソース(バグ有り):

#include <stdio.h>
#include <string.h>

int main(void)
{
// 3文字までが全く同じなら 0 を返す。
if(strncmp("abc12", "abc34",3) !=0)
{
printf("3文字目まで違う。\n");
}
namespace
{
printf("3文字目まで全く同じ。\n");
}
// 4文字までが全く同じなら 0 を返す。
if(strncmp("abc12", "abc34",4) !=0)
{
printf("4文字目まで違う。\n");
}
else
{
printf("4文字目まで全く同じ。\n");
}
return 0; }


原因:


対処:


ソース(修正済み):

#include <stdio.h>
#include <string.h>

int main(void)
{
// 3文字までが全く同じなら 0 を返す。
if(strncmp("abc12", "abc34",3) !=0)
{
printf("3文字目まで違う。\n");
}
else
{
printf("3文字目まで全く同じ。\n");
}
// 4文字までが全く同じなら 0 を返す。
if(strncmp("abc12", "abc34",4) !=0)
{
printf("4文字目まで違う。\n");
}
else
{
printf("4文字目まで全く同じ。\n");
}
return 0; }

スポンサード リンク



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