在C语言中使用默认参数的最简单方式

3
我需要创建一个函数,其中有一个默认参数:
void func ( int a, int b = 1 );
// and
func (1, 2);
func (1);

我不理解你的函数,你的意思是什么? - geekInThePink
1
@geekInThePink 这就像C++中的默认参数。 - phuclv
2个回答

5

很简单。在中没有默认参数,所以代码无效。您可以始终使用,它具有默认参数并且非常有用。但是在中无法实现这一点。


5

C语言不支持默认参数,但是你可以使用预处理器来模拟它们:

void func(int a, int b);
#define TWO_ARGS(A, B, ...)  A, B
#define func(...) func(TWO_ARGS(__VA_ARGS__, 1))

func(1, 2);  /* calls func(1, 2); */
func(1);     /* calls func(1, 1); */

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接