You can try the program in PicBasicPro or other BASIC and I think it should work, assuming "start" is a label at delay_ms. Does C support "goto"? I doubt it....
Yeah, goto's are highly discouraged in C, due to the fact that it makes readability of the code difficult. Its hard to track flow, which impacts maintainability.
Like Pommie suggests, rather write it like that, and make START a function or similar.
Code:
void start(void) {
/* many 'start' things */
}
int main (void) {
while(1){
delay_ms(5000);
if (porta.f0=0) {
start();
}
}
}