Когда можно использовать «void ()» и каковы преимущества этого

Я начал изучать язык C недавно и отметил функцию «void ()», однако мне хотелось бы знать, что она делает, и это лучшие точки приложения, а также альтернатива void, которая потенциально более продуктивна. Спасибо.

Нет функции, называемой void , но функция может быть объявлена ​​с типом возвращаемого значения void . Это означает, что функция не возвращает значение.

 void DoSomething(...) { .... } 

Обновить

void также может использоваться для указания компилятору, что функция не принимает никаких аргументов. Например,

 float CalculatePi(void) { .... } 

void в C имеет три вида использования:

  1. Чтобы объявить, что функция не возвращает значение:

     void foo(int x); 
  2. Чтобы объявить, что функция не принимает параметры:

     int baz(void); 
  3. (ОПАСНО БУДЕТ РОБИНСОН!) Чтобы объявить «универсальный указатель», который может быть передан, например, в виде волшебного файла cookie или передан кому-либо в обратном вызове, его нужно вернуть обратно к его первоначальному типу.

     int register_callback(void (*foo)(void *baz), void *bar); 

register_callback вызывается с указателем на функцию void, которая ожидает в качестве параметра указателя, который предположительно что-то значит для него. В какое-то (неуказанное) время в будущем эта функция будет вызываться, а bar – как параметр. Вы видите такие вещи в некоторых видах встроенных руководителей и многоразовых драйверах устройств, хотя и не так много.

Когда полезны аргументы void как функции?

 #include "stdlib.h" #include "stdio.h" void foo(); int main() { foo(5); // Passing 5 though foo has no arguments. Still it's valid. return 0; } void foo() { printf("\n In foo \n") ; } 

В приведенном выше fragmentе, хотя прототип foo() не имеет аргументов, он по-прежнему действителен для передачи ему чего-либо. Поэтому, чтобы избежать таких событий,

 void foo(void) ; 

Теперь гарантируется, что передача чего-либо в foo() приведет к ошибкам компилятора.

Я не думаю, что существует функция void ().

Однако ключевое слово void используется, чтобы указать, что функция ничего не возвращает, например:

 void MyFunction() { // function body here }