이 멤버 함수를 가진 클래스가 있습니다.역 참조 대 배열 액세스
void AddTo(vertex** vrtList) {
if(*vrtList != 0) {
*vrtList->m_vrtLast = this;
}
m_vrtNext = *vrtList; // save existing list, if any
m_vrtLast = 0;
*vrtList = this;
}
gcc는 오류 메시지를 표시합니다. 내가 vrtList[0]->m_vrtLast
와 *vrtList->m_vrtLast
교체 할 경우
error: request for member ‘m_vrtLast’ in ‘* vrtList’, which is of non-class type ‘vertex*’
는, 컴파일러는 그것을 받아들이고, 코드는 잘 작동합니다.
버그 (gcc) 또는 기능 (C/C++)이 맞습니까?
'(* vrtList) -> m_vrtLast'는 원하는 것을 할 수있는 더 좋은 기회를 제공 할 수 있습니다. 그리고 아니오, 버그가 아닙니다. 그 우선 순위 문제. – WhozCraig
* vrtList-> m_vrtLast를 vrtList-> m_vrtLast로 바꾸십시오. – user1929959
정확합니다. 마찬가지로 vrtList [0]. 그래서 메시지는 접미사 연산자가 접두사 연산자보다 우선한다는 것입니다. 기능이 아니라 버그. –