This is very simple, as Mike says have an array of bytes and shift them all out. Something like this
#define N_REGS 5
byte srVals[N_REGS];
// some code that sets various values for each shift reg and puts the values in the appropriate byte in srVals
digitalWrite(latchPin, LOW);
for (int i = 0; i < N_REGS; i++) {
shiftOut(dataPin, clockPin, MSBFIRST, srVals[i]);
}
digitalWrite(latchPin, HIGH);
Rob