A function prototype is a declaration of a function that declares the types of its parameters
再看下:6.5.2.2 Function calls P6,P7
void func1(int a, int b); // Prototype
void func2(a, b) int a, b; {} // No prototype
void func3(); // No prototype, can be called with any number and type of arguments
https://stefansf.de/post/declaring-defining-and-prototyping-functions/
https://discourse.llvm.org/t/rfc-enabling-wstrict-prototypes-by-default-in-c/60521
函数声明:提供函数名和返回值,可能 提供参数类型
函数定义:提供函数名、返回值和函数体,可能 提供参数类型
函数原型:提供参数类型
C11 6.2.1P2
再看下:6.5.2.2 Function calls P6,P7
编译器选项控制
Wstrict-prototypes
Wold-style-definition