Unused parameters in C are easy
Unused parameters in C are easy
Posted Feb 11, 2025 15:15 UTC (Tue) by alx.manpages (subscriber, #145117)In reply to: Unused parameters in C are easy by farnz
Parent article: Maintainer opinions on Rust-for-Linux
Then you'll need what others have mentioned.
Either a comment:
int
main(int /*argc*/, char *argv[])
{...}
or a cast to void:
int
main(int argc, char *argv[])
{
(void) argc;
...
}
But Rust's _ is no documentation name either, so the C equivalent is indeed no name at all.
The cast-to-void is nice, when you want a name.
Posted Feb 11, 2025 15:18 UTC (Tue)
by farnz (subscriber, #17727)
[Link] (2 responses)
Posted Feb 11, 2025 15:30 UTC (Tue)
by alx.manpages (subscriber, #145117)
[Link]
Ahh, sorry, I missed that. How about this?
#define _ [[maybe_unused]]
int
The _() function already exists (for internationalization of strings), which is why I wouldn't shadow it with this macro, but if you don't use _(), when you could define the undescore to be [[maybe_unused]]. Or you could find another name that serves you.
Posted Feb 11, 2025 21:33 UTC (Tue)
by mathstuf (subscriber, #69389)
[Link]
I'm sorry, you've confused me; why is Rust's use of _ignored_cpu_mask "no documentation name either"? All names starting with an underscore are flagged as explicitly unused, not just the underscore on its own. And the C things so far are all much more work than just adding an `_` to the name to indicate that it's currently deliberately unused - my contention is that if you don't make it really simple, people will prefer to turn off the entire warning rather than use the convention for unused parameters.
Unused parameters in C are worse than in Rust
Unused parameters in C are worse than in Rust
> All names starting with an underscore are flagged as explicitly unused, not just the underscore on its own.
main(_ int argc, char *argv[])
{...}
Unused parameters in C are worse than in Rust