Sujet : Re: Named arguments in C
De : richard.nospam (at) *nospam* gmail.invalid (Richard Harnden)
Groupes : comp.lang.cDate : 04. Jul 2024, 09:59:35
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <v65o9n$2mjeq$1@dont-email.me>
References : 1 2 3 4 5 6 7 8
User-Agent : Mozilla Thunderbird
On 03/07/2024 21:16, Blue-Maned_Hawk wrote:
Richard Harnden wrote:
On 02/07/2024 20:39, Blue-Maned_Hawk wrote:
>
I searched around a bit, and it seems like a more common way to
implement named arguments in C is with a pattern like this:
>
#define f(...) f_impl((struct f_struct){__VA_ARGS__})
void f_impl(struct f_struct { int i, j; char * k; double l, m, n; }
f_params)
{
/* actual code */
}
>
int main(void)
{
f(.i = 0, .j = 2, .l = 2.5, .k = "foo", .n = 4.2, .m = 2.5);
}
>
>
That's the kind of thing Bonita would write.
Horrible.
I assure you that i can write much worse code. What do you say makes this
is horrible?
It just doesn't feel like how C ought to be, not to me anyway.
If you have named parameters, then you have to allow default values.
Then you have function overloading.
I mostly try to avoid function-like macros - this would force them to be everywhere - and the definition would be far away from the call.
I agree with Bart downthread ...