"" に関する原因と対処

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

スポンサード リンク

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

コンパイルエラーメッセージ:
error C2131: 式は定数に評価されませんでした

ソース(バグ有り):

#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 を返す。
alignas(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; }

スポンサード リンク



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