作为我在C编程前的编程正规教育,我从K&R和其他文本中学习了C语言.
在阅读和编写C代码时是否有有用的惯例?
例如,在
d = emalloc(sizeof(*d)); d->d_name = estrdup(name);
是'='最好读为'设置为'或'等于'或其他什么?
那么'=='会被解读为'等于'或'是'或'具有与'相同的价值'?
与"*d","d-> d_name"类似,然后是"&d","&","&&"等.
我知道所有这些意味着什么以及他们做了什么,这个问题与你在阅读符号时所说的内容(大声或内部)有关,特别是如果你认为这有助于理解并最大限度地减少混淆.
程序员的ASCII发音规则有一个很大的列表,包括ASCII发音规则......不一定是发音指针的最佳方式,但至少是如何用语言表达符号.
我这样说:
d = emalloc(sizeof(*d));
迪伊等于明星的尺寸
d->d_name = estrdup(name);
dee arrow dee下划线名称等于ee stir dupe name"
但我不会称之为最佳实践.我没有发音括号,除非它是不明确的,例如运算符优先级.我几乎发出了所有其他的声音.我其实读==
作"平等"
我不是英国人,但这些是我认为最常使用的术语:
'=' - assign to '==' - equals d->d_name member of a struct &d - address of d & - bitwise and && - logical and (or just "and" for short) *d - dereference d, or in case of *d = x "assign x to what is being pointed by d"
至于你的例子:
d = malloc(sizeof(*a));
分配(malloc)一定量的内存,等于a指向的内容大小,并将结果分配给d.
d->d_name = estrdup(name);
将名称作为参数的estrdup调用返回的值分配给d的成员d_name.