2016-07-05 2 views
2

괄호 안에 정의를 묶는 것이 어떤 차이가 있습니까?#if 정의 된 WINDOWS 대 #if 정의 (WINDOWS)

Qt moc 컴파일러가 괄호 안에 묶여 있고 WINDOWS가 정의되어있는 경우 충돌이 발생하기 때문에 묻습니다.

업데이트 : Qt 5.4.2에서 Qt 5.6으로 업그레이드되어 더 이상 문제가 표시되지 않습니다.

+3

'moc'에 심각한 버그가있는 것 같습니다. 물론 충돌은 항상 버그입니다. 그러나 그것들은 동등하고 후자는 흔하지 않습니다. – molbdnilo

+0

예, 정의가 포함 계층 구조보다 훨씬 아래쪽에있을 때만 보았습니다. 따라서이 문제를 일으키는 다른 불행한 상황이있을 수 있습니다. 내가 아는 전부는 괄호를 제거하면 문제가 해결되지만 근본 원인을 찾아 내고보고하는 것이 좋을 것입니다. –

답변

4

아니요,이 경우 의미 차이가 없습니다. 그러나 moc의 C++ 및 전처리 지시문에 대한 이해는 어느 정도 제한되어 있으므로 간단한 구문을 기쁘게하기 위해 일부 구문을 조정해야 할 수 있습니다.

이 경우 동일한 결과를 얻으려면 #ifdef WINDOWS을 사용할 수도 있습니다.