c++ 中函数形参没有变量名

在c++中,有时候会看到这样的函数

int add(int,int);

这一看,不知道是什么意思,为什么形参没有参数名?
正常的情况应该是这样的

int add(int a,int b);

这是由于没有形参名的函数只用来声明,然而到定义的时候,一般情况下都有形参名称。类似这样:

int add(int, int);//声明
int main()
{   
	cout << add(100, 100) << endl;
}
int add(int a, int b) { //定义
	return a + b;
}

然而,极端情况下,你一可以这样定义函数:

int printNumber(int,int) { //定义
	printf("number %d",100);
}

printNumber(10,10);//函数调用,必须传递参数,却用不到

但是这样定义没有任何意义,因为你在调用时候还需要传递参数,然而函数体内部却得不到参数。
还需要注意一点的是,在c++中定义带有参数的宏,是不与要定义形参的,原因是宏只是字符串的替换,它本身不是函数,就相当于模板匹配,用到了哪个宏,按照规律展开便是了。

#define SUM(a,b) a+b //遇到SUM()这个符号,就替换成 宏的定义。没有形参名称,因为根本不必.任何类型的参数都可以替换成 两个类型相加的形式.

你可能感兴趣的:(c++函数声明)