繁体   English   中英

使用 void 与 printf function

[英]using void with printf function

#include <stdio.h>

char char1;     /* first character */
char char2;     /* second character */
char char3;     /* third character */

main()
{

  char1 = 'A';
  char2 = 'B';
  char3 = 'C';
  (void)printf("%c%c%c reversed is %c%c%c\n",
        char1, char2, char3,
        char3, char2, char1);
  return (0);
}

为什么我们在 printf function 中使用 void? printf function 的 void 有什么用?

printf 返回一个大多数人大部分时间不使用的值。 一些工具(例如'lint')会警告这个未使用的返回值,抑制这个警告的常用方法是添加 (void) 强制转换。

它在执行方面没有任何作用,它只是告诉你的工具你知道你很乐意忽略返回值的一种方式。

这看起来像是非常古老的C代码。

printf之前的(void)转换用于表示您忽略printf的返回值。 这不是必需的。

(void)foo()意味着我们忽略对foo的调用的返回值(在本例中 - printf )。

取决于编译器和设置的警告级别,忽略返回值将触发警告。 有时人们使用编译器的“将警告视为错误”选项,然后为了编译代码,必须使用或显式忽略被调用函数的返回值,如本例所示。

这在通常的设置中不是必需的,只有在设置非常严格的情况下。

我想说这是编码人员的努力,以提醒任何阅读代码的人printf的返回值被忽略。 出于任何技术原因,这根本没有必要。

这是将 Printf 的返回值强制转换为空的类型。 这可以用来消除编译器警告,或者它可以简单地让代码的读者知道编写者知道返回永远不会被使用。

main()

哪种数据类型是?

你需要 select 数据类型:

int main() {
   return 0
}

printf是无效函数...

正确编码:

#include <stdio.h>

char char1;     /* first character */
char char2;     /* second character */
char char3;     /* third character */

int main() {
    char1 = 'A';
    char2 = 'B';
    char3 = 'C';
    printf("%c%c%c reversed is %c%c%c\n",
    char1, char2, char3,
    char3, char2, char1);
    return 0;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM