Discuss in detail the different meanings of C and C++ in function declaration

  • 2020-06-01 10:23:34
  • OfStack

1 straight think of C/C++ as medium

int func();

Such a function declaration means a function with 1 argument void(no arguments). Today, however, when I was watching C++, I suddenly saw this sentence:

 For functions with empty argument tables, C and C++ There's a big difference. in C In language, declaration 
int func2();
 Said" 1 Can take any parameter ( Any number, any type ) A function of ". This hinders type checking. And in the C++ In language it means "function with no arguments". 

The teacher did not mention this point, the school textbook did not mention it, with curiosity, I deliberately tried 1


#include <stdio.h>

void fun();
int main()
  fun(1, 1);

  return 0;

void fun(int a, int b)
  printf("%d\n", a+b);

 Compiled by 
$ gcc -Wall test.c -o test
$ ./test 2

$ mv test.c test.cpp
$ g++ -Wall test.cpp -o test
test.cpp:  The function ' int main()' In the :
test.cpp:6:10:  Error: too many arguments to function  ' void fun()'
 fun(1, 1);
test.cpp:3:6:  Note: stated herein 
 void fun();

And that explains why the main function is written the way it is. Right

int main(void)

Related articles: