The C compiler reads from the beginning of the file to the end and processes each statement completely before moving on to the next. Forward declarations are noted and the details filled in as they are encountered. There are more details about the linker which I will spare you here.
If you are asking about logical expressions within a source line, the order that the compiler 'reads' is irrelevant. There is short circuit logic however such that a statement such as
if(x && *x > 3)
{ ... }
is executed from left to right and terminates when a false condition is encountered.