在C语言代码中调用void函数details()后,程序是否会自动继续执行?
问题解答
在C语言中,调用void类型的details()函数执行完毕后,程序会自动回到调用点继续执行后续代码,完全不需要添加任何额外代码。
拿你提供的这段代码来说:
void reserve(int x) { stream = begin; if (begin == NULL) { begin = stream = (struct room*)malloc(sizeof(struct room)); details(); // 调用void函数 stream->following = NULL; // details()执行完后会自动执行这行代码 printf("\n\t room booking is successful!"); x = stream->room_period; printf("\n\t your room period is: period-%d", x); stream->room_period = x; return; } }
当程序执行到details();时,会跳转到details()函数内部执行所有逻辑,等details()的代码全部跑完,就会回到reserve()函数中details();的下一行,依次执行stream->following = NULL;、printf等后续代码,直到遇到return退出当前分支。
void函数只是没有返回值,但它的调用流程和普通函数完全一致:调用函数→执行内部逻辑→返回调用点继续执行后续代码,不需要额外做任何处理。
内容的提问来源于stack exchange,提问作者G Dydy
相关产品推荐
相关产品推荐

