typedef int HRESULT ;
bool SUCCEEDED(HRESULT x){return(x)>=0;}
HRESULT f(){return 0;}
#define g f
#define h f
/********************************/
HRESULT fun()
{
HRESULT hr;
SUCCEEDED(hr = f()) &&
SUCCEEDED(hr = g()) &&
SUCCEEDED(hr = h());
return hr;
}
/*---- or, if you'd prefer: ----*/
#define DO SUCCEEDED
#define _ && SUCCEEDED
#define OD (1);
HRESULT more_fun()
{
HRESULT hr;
DO
(hr = f()) _
(hr = g()) _
(hr = h()) _
OD
return hr;
}
int main(){
fun();
more_fun();
}