использование void с функцией printf - PullRequest
4 голосов
/ 13 июля 2011
#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);
}

Почему мы используем void с функцией printf? что такое использование void с функцией printf?

Ответы [ 6 ]

11 голосов
/ 13 июля 2011

printf возвращает значение, которое большинство людей не использует большую часть времени. Некоторые инструменты (например, 'lint') предупреждают об этом неиспользуемом возвращаемом значении, и распространенным способом подавления этого предупреждения является добавление (void) приведения.

Это ничего не делает с точки зрения исполнения, это просто способ сообщить своим инструментам, что вы знаете, что готовы игнорировать возвращаемое значение.

2 голосов
/ 13 июля 2011

(void)foo() означает, что мы игнорируем возвращаемое значение вызова для foo (в данном случае - printf).

Зависит от компилятора и установленного уровня предупреждения, игнорирование возвращаемого значения вызовет предупреждение. Иногда люди используют опцию компилятора «обрабатывать предупреждения как ошибки», а затем для того, чтобы код компилировался, возвращаемое значение вызываемых функций должно либо использоваться, либо явно игнорироваться, как в этом случае.

Это не требуется при обычной настройке, только если настройки очень строгие.

2 голосов
/ 13 июля 2011

Это выглядит как очень старый C код.

(void) приведение перед printf используется, чтобы показать, что вы игнорируете возвращаемое значение printf.Это не обязательно.

0 голосов
/ 03 мая 2017

main()?

какой тип данных?

вам нужно выбрать тип данных:

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;
}
0 голосов
/ 14 июля 2011

Это тип, преобразующий возвращаемое значение Printf в ничто. Это может быть использовано для избавления от предупреждения компилятора или просто для того, чтобы читатель кода знал, что автор знал, что возвращение никогда не будет использовано.

0 голосов
/ 13 июля 2011

Я бы сказал, что кодер пытается напомнить любому, кто читает код, что возвращаемое значение из printf игнорируется.В этом нет необходимости по какой-либо технической причине.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...