15 분 전에 질문을했고 닫았습니다. main()
에서 간단한 테스트를 시도했기 때문에 닫았습니다. 그러나 실제 코드에서는 작동하지 않습니다.C++ short를 사용하여 int 배열 인덱싱
배경에는 부호가없는 짧은 인덱서를 통해 액세스 할 수없는 부호없는 정수 배열이 있습니다. 스택에 배열을 선언하면 작동하지만 배열 데이터 멤버는 작동하지 않습니다. 여기
배열의 선언입니다 :typedef unsigned int uint;
class OB{
public:
OB();
void x(unsigned short side_pos);
private:
uint best_p[2];
};
여기에 내가 컴파일러 오류 얻을 코드입니다 : 내가 할 경우
void OB::x(unsigned short side_pos){
unsigned int best_price = best_p[side_pos];
}
을 :
void OB::x(unsigned short side_pos){
unsigned short something_else = 1;
unsigned int best_price = best_p[something_else];
}
나는 또한 얻을 컴파일러 오류 :
OB.cpp: In member function ‘void OB::x(short unsigned int)’:
OB.cpp:62:56: error: invalid types ‘unsigned int[short unsigned int]’ for array subscript
unsigned int best_price = best_p[side_pos];
로컬 변수가 없다는 것이 확실하고 확실한가요? – chris
@chris는 대답으로 넣었습니다. (필자는 제 컴파일러 오류 중 하나에서 여러 선언이 있었지만 다른 것에 대해서는 "this-> my_array []"로 고정했습니다). – user997112
더 나은 : 다른 이름을 사용하십시오. 그림자는 때때로 유용 할 수 있지만 대개 컴파일 오류 만 발생시킵니다. –