在我看来,C的箭头操作符( - >)是不必要的.点运算符(.)应该足够了.请使用以下代码:
typedef struct {
int member;
} my_type;
my_type foo;
my_type * bar;
int val;
val = foo.member;
val = bar->member;
Run Code Online (Sandbox Code Playgroud)
我们看到箭头操作符必须用于取消引用栏.但是,我更愿意写
val = bar.member;
Run Code Online (Sandbox Code Playgroud)
关于我是否试图从结构或指针结构中拉出"成员",没有任何歧义.但是使用错误的运算符很容易,尤其是在重构代码时.(例如,也许我正在foo上做一些复杂的操作,所以我将代码移动到一个新函数并将指针传递给foo).我认为我不需要关心foo是否是指针; 编译器可以担心细节.
所以问题是:从C语言中消除 - >不是更简单吗?