C언어

E0266 "변수"이(가) 모호합니다. 에러와 해결방법

mcdn 2020. 5. 1. 12:56
반응형

 

문제. 오류 내용

 

#include <iostream>
using namespace std;
int arr[4] = { 3,5,9,10 };
int arr2[4] = { 2,6,9,11 };
int result[8];

int head = 0;
int right = 0;

int main() {
	for (int i = 0; i < 4;i++) {
		cin >> arr[i];
	}
	for (int i = 0; i < 4;i++) {
		cin >> arr2[i];
	}
	while (head != 8) {
		if (right == 0){
			
		}

		head++;
	}

	return 0;
}

 

위와 같이 코드를 짜면 변수 "right"이 모호합니다. 라는 에러가 뜬다. 

E0266 "변수"이(가) 모호합니다. 

 

원인은 using namespace std; 에 right라는 변수가 내포되어 있는데
이를 내가 같은 이름으로 재정의내려서 모호하다고 하는 것이다. 

 

해결방법 - 변수 이름 바꾸기

 

해결하려면 

1. 변수 right를 rht등 다른 변수 이름을 쓴다. 

2. "right"대신 "::right"를 쓴다. (::는 global namespace를 의미. not std)

3. using namespace std;를 쓰지 않는다. (하지만 이렇게 되면 std:cout std::endl등 std를 앞에 다 붙여야 함)

 

결국 2,3번 보다 1번대로 변수이름을 바꾸는 것이 가장 속 편하다. 

출처 : https://stackoverrun.com/ko/q/11757841

반응형