C语言,函数形参与实参个数不一致问题

​ 最近阅读工程代码的时候,同一个函数,不同场景调用时,输入的实参个数不一样,但是编译却没有问题。查看函数的定义,相关的C文件里并没有给形参指定默认值,这就很奇怪了。

创新互联专注于企业营销型网站建设、网站重做改版、黔西南州网站定制设计、自适应品牌网站建设、H5场景定制成都商城网站开发、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为黔西南州等各大城市提供网站开发制作服务。

​ 最终,发现在函数相关的头文件里有给形参指定默认值。这就能解释通为什么形参和实参个数不一致,编译能正常通过的问题了。下面是示例代码。

/*parainput.c 文件内容*/

#include  
void sum(int a,int b,int c)
{
	int result = a + b + c;
	printf("result = %d\n",result);	
} 
/*parainput.h 文件内容*/

#ifndef _PARAINPUT_H
#define _PARAINPUT_H

void sum(int a,int b=1,int c=2);

#endif
/*main.c 文件内容*/
#include 
#include "parainput.h" 

void test_01(void)
{
	int a = 10;
	sum(a);
	return;
}

void test_02(void)
{
	int a = 10,b = 20;
	sum(a,b);
}

void test_03(void)
{
	int a = 10,b = 20,c = 30;
	sum(a,b,c);
}
int main(void)
{
	test_01();
	test_02();
	test_03();
	
	return 0; 
}

用G++进行编译,最终运行结果如下。

result = 13
result = 32
result = 60

--------------------------------
Process exited after 0.006126 seconds with return value 0
请按任意键继续. . .

新闻名称:C语言,函数形参与实参个数不一致问题
网站路径:http://bzwzjz.com/article/dsoijcp.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 网站制作 成都企业网站设计 重庆外贸网站建设 教育网站设计方案 成都品牌网站建设 手机网站设计 成都网站建设 成都网站设计制作公司 手机网站制作 成都品牌网站设计 手机网站建设 成都商城网站建设 自适应网站设计 手机网站制作 成都响应式网站建设公司 网站制作 成都网站制作公司 成都网站制作 网站设计公司 营销网站建设 成都网站建设 成都企业网站制作