Since the statements are inside a
process they will execute sequentially just like software.
If you have
use ieee.std_logic_1164.all; and
start is set to
1 elsewhere in the code, then
if ( c ) would evaluate to
else branch would be executed. Then
c will be set to
false and will retain that value until the next time this process executes (or some other process or combinatorial statement changes it).
If you don't have
use ieee.std_logic_1164.all; the behavior is dependent on the compiler/synthesizer.
There is a lot of code missing so I'm making a lot of assumptions here but hopefully you get the basic meaning.