求助 c 语言函数参数数量问题
c语言吧
全部回复
仅看楼主
level 1
悲欢离合97
楼主
如何定一个函数,可以只取0个或1个参数?
用宏的方法必须要1个以上的参数!
例如:
max(1) 返回 1
max() 返回 0
要在c语言中实现, 但是毫无思路!
2019年01月19日 19点01分
1
level 10
🔥不灭🔥
说的是啥?返回值和参数,参量有啥关系?完全是两码事
2019年01月19日 23点01分
2
level 15
aaaaaaa421
这一定要用到宏,不过宏的0参数检测不太好实现,你可以在外网搜一下
2019年01月20日 03点01分
3
悲欢离合97
对呀,还要求超过1个参数要报错,我都没学过宏
2019年01月20日 10点01分
level 7
zizi不倦😄
嗯嗯 1.看看printf多参数实现原理 具体我也忘了
2.改成cpp写
2019年01月20日 09点01分
4
悲欢离合97
要求是c语言,我看了下多参实现,要用到宏。网上现成的只能处理1个或更多,我不懂宏,不过思路是有了...
2019年01月20日 09点01分
level 10
free逍遥星空
2019年01月20日 12点01分
5
悲欢离合97
谢谢!
2019年01月20日 18点01分
悲欢离合97
我用 #define CountLines(arg0) _CountLines(DEFARG(arg0, NULL)) 可以做到0 或 1个输入,但是能不能用这种方法达成两个参数或多个也能编译运行成功,但是输出一个 error信息?
2019年01月20日 18点01分
悲欢离合97
多个参数运行的问题解决了,但是...要超过两个参数给个报错信息真的太难为我了
2019年01月20日 20点01分
free逍遥星空
@悲欢离合97
_max里面检测arr的大小不就行了。arr有2个元素说明输入一个值,多余2就是超了。
2019年01月21日 00点01分
level 11
滴水天地
这是c++的函数重载才有的吧
2019年01月21日 01点01分
6
level 10
free逍遥星空
咯,这样符合你意思了。或者里面弄成字符串strchr逗号个数也行,不过一句话同时调用对errno有副作用,这里可能需要弄一下其他方式。
2019年01月21日 02点01分
7
level 12
我是不是师兄
C语言中 不定参数函数 和 宏 能基本达到这个要求
不定参数有人写出来了
我补充一个宏
#define FOO(X) (*#
X != 0 ? X + 0 : 0)
printf("%d %d\n", FOO(99), FOO());
2019年01月21日 02点01分
8
我是不是师兄
@5月注册
好办法
2019年01月21日 15点01分
我是不是师兄
@5月注册
加括号就更优秀了
2019年01月21日 15点01分
free逍遥星空
@5月注册
很强啊,第一反应这东西预处理器过了,编译器不过吧。。然后才反应还有符号,学艺不精学艺不精
2019年01月22日 10点01分
肉鸡葱鸡😲
@我是不是师兄
*#是什么符号
2019年01月24日 06点01分
level 12
我是不是师兄
仔细想想 不定参数函数不能实现
不定参数需要至少一个参数才能用
你的想法最少是0个参数
C只能依靠 宏 了
2019年01月21日 02点01分
9
悲欢离合97
2019年01月22日 08点01分
1