网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

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://bjjierui.cn/article/dsoijcp.html

其他资讯