十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
参数的多少与你的问题的复杂度和解决问题的方式都有一定的关联。如果一个函数处理的问题所需要的参数就是那么多的话,就是合适的,不必修改。
站在用户的角度思考问题,与客户深入沟通,找到无极网站设计与无极网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站建设、成都网站制作、企业官网、英文网站、手机端网站、网站推广、域名注册、虚拟主机、企业邮箱。业务覆盖无极地区。
fun函数声明错误,正确是 char fun(char a[20], char b);
int b; 变量 b重复定义,此句去掉。
fun(a[20], e); 函数参数传递错误,正确的是 fun(a, e);
正确代码如下:
#include stdio.h
#includestring.h
int main()
{
char fun(char a[20], char b); // 函数声明错误
char a[20], e, b[200];
// int b; // b重复定义了,此句去掉
gets(a);
scanf("%c", e);
fun(a, e); // a 参数传递错误,正确 fun(a, e)
}
char fun(char a[20], char b)
{
int i;
for (i = 0; i20; i++)
if (a[i] == b)
a[i] = a[i + 1];
return a[20];
}
一个函数的参数的数目没有明确的限制,但是参数过多(例如超过8个)显然是一种不可取的编程风格。参数的数目直接影响调用函数的速度,参数越多,调用函数就越慢。另一方面,参数的数目少,程序就显得精练、简洁,这有助于检查和发现程序中的错误。因此,通常应该尽可能减少参数的数目,如果一个函数的参数超过4个,你就应该考虑一下函数是否编写得当。 如果一个函数不得不使用很多参数,你可以定义一个结构来容纳这些参数,这是一种非常好的解决方法。在下例中,函数print_report()需要使用10个参数,然而在它的说明中并没有列出这些参数,而是通过一个RPT_PARMS结构得到这些参数。 # include atdio. h typedef struct ( int orientation ; char rpt_name[25]; char rpt_path[40]; int destination; char output_file[25]; int starting_page; int ending_page; char db_name[25]; char db_path[40]; int draft_quality; )RPT_PARMS; void main (void); int print_report (RPT_PARMS* ); void main (void) { RPT_PARMS rpt_parm; /*define the report parameter structure variable * / /* set up the report parameter structure variable to pass to the print_report 0 function */ rpt_parm. orientation = ORIENT_LANDSCAPE; rpt_parm.rpt_name = "QSALES.RPT"; rpt_parm. rpt_path = "Ci\REPORTS" rpt_parm. destination == DEST_FILE; rpt_parm. output_file = "QSALES. TXT" ; rpt_parm. starting_page = 1; rpt_pann. ending_page = RPT_END; rpt_pann.db_name = "SALES. DB"; rpt_parm.db_path = "Ci\DATA"; rpt_pann. draft_quality = TRUE; /*call the print_report 0 function; paaaing it a pointer to the parameteM inatead of paMing it a long liat of 10 aeparate parameteM. * / ret_code = print_report(cu*pt_parm); } int print_report(RPT_PARMS*p) { int rc; /*acccM the report parametcra paaaed to the print_report() function */ oricnt_printcr(p-orientation); Kt_printer_quality((p-draft_quality == TRUE) ? DRAFT ; NORMAL); return rc; } 上例唯一的不足是编译程序无法检查引用print_report()函数时RPT_PARMS结构的10个成员是否符合要求。
亲,你说的是函数重载吧?
重构是指代码重构,就是重新写代码,因为前面写过一次,所以再写的时候可能会有更好的想法,就像做作业检查一样。
函数重载是指函数名一样,参数不一样,即为函数重载:
int func(int a){....},int func(char *p){....}和int func(int *p){....}都是它的重载函数
不知道你明白没有