KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
It seems to me that C's arrow operator (->) is unnecessary. The dot operator (.) should be sufficient. Take the following code: typedef struct { int member; } my_type; my_type foo; my_type * bar; int val; val = foo.member; val = bar->member; We see that the arrow operator must be used to dereference bar. However, I would prefer to write val = bar.member; There is no ambiguity as to whether I am trying to pull 'member' from a structure or from a pointer to the structure. But it is easy to use the wrong operator, especially when refactoring code. (For example, maybe I am doing some complex operations on foo, so I move the code into a new function and pass a pointer to foo). I don't think I need to care whether foo is a pointer or not; the compiler can worry about the details. So the question: wouldn't it be simpler to eliminate -> from the C language?
Tags (comma-separated)
Save Edits
Cancel