C语言中的函数原型
让我们假设以下程序:C语言中的函数原型,c,ansi,C,Ansi,让我们假设以下程序: #include <stdlib.h> int main() { int a,b,; scanf("%d",&a); scanf("%d",&b); c = func(a,b); printf("%d",c); return 0; } int func(int a, int b) { return a+b; } 备选案文2: int func(int , int); 选项1和选项2之间有什么区别?它们的效果完全相
#include <stdlib.h>
int main()
{
int a,b,;
scanf("%d",&a);
scanf("%d",&b);
c = func(a,b);
printf("%d",c);
return 0;
}
int func(int a, int b)
{
return a+b;
}
备选案文2:
int func(int , int);
选项1和选项2之间有什么区别?它们的效果完全相同?1和2完全相同。C编译器允许您输入参数名,但它们是任意的:如果它们是合法名称(例如,它们不能是关键字或包含前导双下划线),编译器将忽略它们。1和2完全相同。C编译器允许您输入参数名,但它们是任意的:如果它们是合法名称(例如,它们不能是关键字或包含前导双下划线),编译器将忽略它们。这两个选项相同,但第一个选项提供了有关参数的更多信息(用于更高级的功能)
clang tidy有一条规则,警告不要写入选项2。这两个选项是相同的,但第一个选项提供了有关参数的更多信息(用于更高级的函数)
clang tidy有一条规则警告不要编写选项2。原型不需要提及名称,只需要提及类型。它们可能是相同的。但是
int func(int parcel1,int parcel2);
(可以使用int func(int a,int b){/*…*/}
进行定义)更具描述性。原型不需要提及名称,只需要提及类型。它们可能是相同的。但是int func(int parcel1,int parcel2);
(可以使用int func(int a,int b){/*…*/}
来定义)更具描述性。
int func(int , int);