C语言中可以向C++中那样对函数设置默认值吗?

beexie 2011-03-02 10:26:34
在c下些了如下程序 结果编译不过 求帮助

#include <stdio.h>
#include <stdlib.h>
int add(int x,int y=100);
void main(void)
{
int a,b,c;
a = 1000;
b = 20;
c = add(a);
printf("%d\n",c);

}

int add(int x,int y)
{
return (x+y);
}



编译时出现的问题:

G:\VC_Program\practice&example\Text2.c(3) : error C2143: syntax error : missing ')' before '='
G:\VC_Program\practice&example\Text2.c(3) : error C2072: 'add' : initialization of a function
G:\VC_Program\practice&example\Text2.c(3) : error C2059: syntax error : ')'
G:\VC_Program\practice&example\Text2.c(9) : error C2198: 'add' : too few actual parameters
Error executing cl.exe.
...全文
402 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ww884203 2011-03-02
  • 打赏
  • 举报
回复
很简单,不可以
Wayne-Woo 2011-03-02
  • 打赏
  • 举报
回复
int add(int x,int y=100); 函数声明的形参不可以赋值。改为int add(int x,int y);
c=add(a);在定义函数时是两个参数,所以调用函数时,也必须是两个参数,改为c=add(a,b);
定义函数:add(int x,int y)
{
y=100;
return(x+y);
}
全修改后:
#include <stdio.h>
#include <stdlib.h>
int add(int x,int y);
void main(void)
{
int a,b,c;
a = 1000;
b = 20;
c = add(a,b);
printf("%d\n",c);

}

int add(int x,int y)
{
y=100;
return (x+y);

}
無_1024 2011-03-02
  • 打赏
  • 举报
回复
C语言貌似不可以吧
用c++就可以 也就是用 .cpp后缀名
莫名的默默 2011-03-02
  • 打赏
  • 举报
回复
C是简练的,没有这种特性,那是C++特性
proghua 2011-03-02
  • 打赏
  • 举报
回复
不可以
pengzhixi 2011-03-02
  • 打赏
  • 举报
回复
额,默认参数这个是C++里面的东西。
昵称很不好取 2011-03-02
  • 打赏
  • 举报
回复
C不支持默认参数
Roy_Smiling 2011-03-02
  • 打赏
  • 举报
回复
c语言的调用函数一定要和函数声明的一样,不可以缺省参数,那个是C++里的性质了.
jinzhou520 2011-03-02
  • 打赏
  • 举报
回复
呃. 这么高级!

69,368

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧