gpt4 book ai didi

c - 返回值不明确

转载 作者:行者123 更新时间:2023-11-30 14:46:53 26 4
gpt4 key购买 nike

在 C 语言书籍(K&R 编写)中,在低级 I/O 部分,我遇到了两个函数 read()close () 两者都有一个整数返回类型。但我发现它们的使用甚至不关心将返回值分配给任何整数变量。但是,当我创建具有整数返回类型的用户定义函数并使用它而不将其分配给整数变量时,会导致编译器警告。为什么会出现这种不一致的情况呢?

最佳答案

传统上,编译器不会因忽略库函数调用的结果而发出警告。像 printfscanfmemcpy 这样的函数确实会返回一些东西,但是早在 K&R 黑暗时代的人就决定隐式跳过检查结果功能。它成为事实上的标准。尽管直到今天,在许多情况下跳过结果仍然是不好的做法(例如 scanf 的情况)。

如果您不检查应用程序函数的结果,编译器确实会发出警告,因为这几乎总是一个错误。如果您故意不想检查结果,则应该编写 (void) func(); 来消除此类警告。

<小时/>

(旁注:readclose 不是标准 C,而是 Unix API。它们仍然是库函数。)

关于c - 返回值不明确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51870480/

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