funzionalità SDK di Windows è riuscita macro:Perché tante parentesi nella macro SUCCEEDED?
#define SUCCEEDED(hr) (((HRESULT)(hr)) >= 0)
-----------------------^-------------^-----
chiaramente come con altre macro Ci sono le parentesi per garantire il diritto all'interpretazione del intenti da parte del compilatore.
Quello che non capisco è perché ci sono parentesi intorno a (HRESULT)(hr)
(li ho contrassegnati con il carattere ^
). hr
è tra parentesi in modo che possa esistere qualche costrutto complesso, HRESULT
è tra parentesi per formare un cast in stile C, quindi l'intero costrutto >=
è tra parentesi, quindi perché la coppia di parentesi in più intorno a (HRESULT)(hr)
?
Mi scuso per la modifica iper-pedantina, ma il titolo della domanda mi dava fastidio ogni volta che l'ho visto sulla pagina principale ... – AakashM
@AakashM: Dato che non sono un madrelingua inglese, devo chiedere: che cos'è la differenza tra "parentesi" e "parentesi"? Vedo frasi come "è necessario rafforzare gli argomenti correttamente nella tua macro" ogni qua e là. Perché la parola "parentesi" non è adatta qui? – sharptooth
@sharptooth: "parentesi" spesso, anche se non sempre, significa "{}", a volte chiamato "parentesi graffe". "Parentesi" di solito significa '()', a volte chiamato "parentesi tonde". "Brackets" è talvolta usato per significare '[]' o '<>', a volte chiamato "parentesi quadre" e "parentesi angolari". Tutti e tre i termini sono spesso usati in modo intercambiabile. L'inglese non è preciso come il C++. –