gpt4 book ai didi

在没有返回语句的情况下检查函数的返回值

转载 作者:行者123 更新时间:2023-12-02 06:08:08 26 4
gpt4 key购买 nike

请解释为什么有时不需要 return 语句?
函数有返回类型,但缺少返回语句。同时,程序编译并运行良好。
请帮助我更好地理解这一点

char* handleInput() {
fgets(buffer, 1024, stdin);
// return buffer; <---- COMMENTED RETURN
}

void main() {
char* ptr = handleInput();
int flag = atoi(ptr);
if (flag < 0) break;
printf("You entered: %s\n", ptr);
}

最佳答案

基本上返回的是愚蠢的运气。当它返回时,您会得到 CPU 寄存器中发生的情况。例如,如果返回值在 AX 中,并且 char*碰巧在 AX,你很幸运。我相信这是一种未定义的行为;即 C 语言规范没有告诉你应该做什么,所以它留给编译器。我很惊讶现代编译器至少不会向您发出警告。

关于在没有返回语句的情况下检查函数的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6638963/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com