有没有办法在C函数中使用命名参数?
类似于原型void foo(int a, int b, int c);
我想用foo(a=2, c=3, b=1);
[替换b & c
的顺序并使用他们的名字来区分]
动机:我想要一个更多的Pythonic C,我可以轻松地操作我的函数参数而不会错误地混合它们
答案 0 :(得分:10)
有点,sorta,带有复合文字和指定的初始值设定项:
typedef struct foo_args {
int a;
int b;
int c;
} foo_args;
// Later
foo(&(foo_args) {
.a = 2,
.c = 3,
.b = 1
});
但老实说,我不会打扰。它要求你弯曲函数定义以接受指针,并使其调用变得麻烦。
答案 1 :(得分:3)
C中不支持命名参数。
所有参数必须以正确的顺序传递。