C语言中函数参数的为空和用void标注他们的效果一样吗?

 #include <stdio.h>

  2 //int add();
  3 int add(void);
  4 int main(void)
  5 {
  6     int i;
  7     i = add(5 ,6);
  8
  9     printf("%d\n", i);
 10     return 0;
 11 }
 12 int add(a ,b)
 13 {
 14     return a + b ;
 15 }

C语言中函数声明对函数的检测最主要的标准是函数名,C语言中函数参数列表中的参数名可以缺省

C语言当中参数列表中的数据类型也可以缺省,默认是int。

add()并不等价于add(void);  add(void)明确指明add函数不接收任何参数,若对其传参会报错,提示是error;

而add()表示接收参数,他的类型是int,只是他是一种没有意义的接收,并不会用这个参数,提示是wring;