There is no effect here no matter what s1 or s2 are; even if s1 is null, the resultant statement of s2 does not constitute an action; and, if s1 is not null, then (void) 0 also has no effect. The statement is thus easily reduced to "Do Nothing" by any competent compiler.