i will never forgive C for making the type syntax be
char* args[]
instead of the much more reasonable
&[char] args
it also bothers me that char* args[] and char c are “the same type” in the sense that the compiler lets you write
char c, *args[5];
with no problems. i think the C languages would be way easier to learn if they had better type syntax. don’t even get me started on C++ adding support for
I personally think that C++ can be beautiful. For example: std::filesystem::path overrides the / operator, for specifying parent paths. It’s the same as Kotlin’s OKIO and Pythons standard pathlib.
char **args can just mean you have a pointer which points to an address, and at that address, you can get a second address. Follow the second address, there is a char saved there.
On the other hand, char *args[] means " follow this address to find a list of characters".
@racketlauncher831 As far as the C compiler is concerned, there is literally no difference between those two notations. If you declare a function parameter as an array (of T), the C compiler automatically strips the size information (if any) and changes the type to pointer (to T).
(And if we’re talking humans, then char *args[] does not mean “follow this address to find a list of characters” because that’s the syntax for “array of pointers”, not “pointer to array”.)
You are not logged in. However you can subscribe from another Fediverse account, for example Lemmy or Mastodon. To do this, paste the following into the search field of your instance: !programmerhumor@lemmy.ml
Post funny things about programming here! (Or just rant about your favourite programming language.)
Rules:
Posts must be relevant to programming, programmers, or computer science.
No NSFW content.
Jokes must be in good taste. No hate speech, bigotry, etc.
i will never forgive C for making the type syntax be
instead of the much more reasonable
it also bothers me that
char* args[]
andchar c
are “the same type” in the sense that the compiler lets you writewith no problems. i think the C languages would be way easier to learn if they had better type syntax. don’t even get me started on C++ adding support for
@affiliate Hey, you didn’t even mention that
char *args[]
actually meanschar **args
in a parameter list.god, what a beautiful language. it brings a tear to my eye
I personally think that C++ can be beautiful. For example:
std::filesystem::path
overrides the/
operator, for specifying parent paths. It’s the same as Kotlin’s OKIO and Pythons standard pathlib.It could, but not necessarily.
char **args
can just mean you have a pointer which points to an address, and at that address, you can get a second address. Follow the second address, there is achar
saved there.On the other hand,
char *args[]
means " follow this address to find a list of characters".@racketlauncher831 As far as the C compiler is concerned, there is literally no difference between those two notations. If you declare a function parameter as an array (of T), the C compiler automatically strips the size information (if any) and changes the type to pointer (to T).
(And if we’re talking humans, then
char *args[]
does not mean “follow this address to find a list of characters” because that’s the syntax for “array of pointers”, not “pointer to array”.)