"error C2086: 'char *p2': 再定義されました" に関する原因と対処

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

スポンサード リンク

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

コンパイルエラーメッセージ:
error C2086: 'char *p2': 再定義されました。

ソース(バグ有り):

// _asm のサンプルコード
// 文字列へのポインターをコピーする
#include <stdio.h>

int main()
{
	 char *p2="テスト用文字列";
	 char *p2;

	 _asm
{ mov esi,p1 mov p2,esi } printf("%s\n",p2); return 0; }


原因:
同一の変数名が2度定義されています。

この例では p2 という名前の変数が2度定義されています。

対処:
異なる名前の変数を定義します。


ソース(修正済み):

// _asm のサンプルコード
// 文字列へのポインターをコピーする
#include <stdio.h>

int main()
{
	 char *p1="テスト用文字列";
	 char *p2;

	 _asm
{ mov esi,p1 mov p2,esi } printf("%s\n",p2); return 0; }

スポンサード リンク



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