Interfacing C with Arduino

Its just as PaulS says.
For instance, I have a master/slave situation between 2 Arduinos.
The master sends out:
'b'
0x00
0x01
0x02
0x03

The slave sits in a loop:

if (Serial.available() >0){  // anything come in?
syncbyte = Serial.read(); // yes, read the byte that's available
if (syncbyte == 'b'){ // got our first byte
while (Serial.available() <4){ 
// hang out for 4 more bytes
}
// 4 received, proceed
byte0 = Serial.read();
byte1 = Serial.read();
byte2 = Serial.read();
byte3 = Serial.read();

// set a flag to show a message was received
messageIn = 1;
} // end syncbyte check
}// end serial available check
if (messageIn == 1){
//clear the flag for next pass
messageIn = 0;
// and do whatever you do with the data
}

and of course this could be written to allow the slave to do other stuff while waiting for those 4 bytes,
or if you are using high serial comm's and you know the 5 bytes are coming over quick, maybe just waiting is ok.