아래 비교를 시도하고 있습니다.GCC4.8 버전 피연산자 '!'주위에 괄호를 사용하는 것이 좋습니다.
오류 : 시도는 GCC 4.8의 새 버전으로 던지고 오류를 컴파일
if ((tmp->tskt_pRegP->init & 0x1) ||
(rmppP->portAnnounceRecSMP->rcvdAnnounce &&
((!tsn_ptpP->tsn_ptpRegP->tsn_ptpPortRegP[PortNumber]->portEnable & 0x10000)||
(!tsn_ptpP->tsn_ptpRegP->tsn_ptpPortRegP[PortNumber]->portEnable & 0x20000)||
(!tsn_ptpPortAttrP->asCapable))))
{
tsn_ptpPortAttrP->portAnnounceRecSMP->curr = TEST_RECEIVE_STATE_DISCARD;
}
'!'의 피연산자 괄호 제안을 또는 '&'을 '& &'또는 '!'로 변경하십시오. 에 '~'[-Werror = 괄호] ((tsn_ptpP-> tsn_ptpRegP-> tsn_ptpPortRegP [PortNumber이] -!는?> portEnable & 0x10000에) ||
는 사람이 해결을 도와 주실 래요
&를 &로 바꾸면 문제가 해결됩니다. 감사! – Johnney
부울을 취하면 실제로 원하는 것을 생각하지 않습니다. 실제로 의미가 없습니다. –
'! tsn_ptpP-> tsn_ptpRegP-> tsn_ptpPortRegP [PortNumber] -> portEnable & 0x10000 'to '! (tsn_ptpP> tsn_ptpRegP-> tsn_ptpPortRegP [PortNumber] -> portEnable & 0x10000)'와 비슷하게 다음 서브 표현식에 사용됩니다. –