"error C2042: 'signed' と 'unsigned' が 1 つの宣言内で同時に使われています" に関する原因と対処

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

スポンサード リンク

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

コンパイルエラーメッセージ:
error C2042: 'signed' と 'unsigned' が 1 つの宣言内で同時に使われています。

ソース(バグ有り):

#include <mbstring.h>
#include <stdio.h>

int main()
{
const unsigned char string1[] = "abcdefg";
const unsigned signed string2[] = "ab defg";
const unsigned char *p;
p = _mbsspnp( string1 , string2 );
printf( "この文字は含まれません→: %s\n", p); }


原因:
一つの宣言で 'signed' と 'unsigned'の両方が指定されています。

対処:
宣言では 'signed' あるいは 'unsigned' のどちらかのみ指定します。


ソース(修正済み):

#include <mbstring.h>
#include <stdio.h>

int main()
{
const unsigned char string1[] = "abcdefg";
const unsigned char string2[] = "ab defg";
const unsigned char *p;
p = _mbsspnp( string1 , string2 );
printf( "この文字は含まれません→: %s\n", p); }

スポンサード リンク



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