【发布时间】:2016-10-12 07:39:37
【问题描述】:
如果int x=printf("test"); 安全执行,c 中没有错误,因为printf 返回一个int 值(它已打印的数据长度。)但是如果我们不存储该整数值怎么办:
printf("text");
为什么我们不会从中得到错误?
【问题讨论】:
-
为什么会期望它抛出错误?
-
因为 int x=printf("test");安全执行没有错误。这意味着 printf 返回一些整数值,即它打印的数据的长度。但是如果我们不存储该整数值怎么办。为什么它不会得到任何错误?
-
仅仅因为有一个返回并不意味着它必须被分配给某个东西。通过不分配它,对函数的调用使其行为类似于 void 函数。
-
如果您想确保某个特定函数的返回值不会被忽略,请参阅this question,以及this answer 了解适用于 gcc 和 MSVC 的宏。
标签: c c return printf return-value