我最近开始研究关于结构和指针,但是我并没有完全理解关于struct
的设计。我理解struct
的声明,即typedef struct Alias
及其内容,但我不明白Get_noAllyp
和*no_getOf
在声明结束时。他们是什么?我也找不到一个好的来源。如何将一个struct定义为多个名字?
typedef struct Alias {
char *s_a_name;
char **s_aliases;
short *s_dumr;
int s_get_sum;
}Get_noAllyp, *no_getOf; /*Here, I don't understand this one.
Where did these two variables come from?
And one of them is a pointer.*/
请勿同时使用'C'和'C++'标记。他们是不同的语言,他们有不同的规则(尽管他们有很多共同点)。 – axiac
发布代码创建两种类型(Get_noAllyp和* no_getOf)但是,结构标签名称是'别名',因此这两种类型的名称非常不符合要求。误导性的类型名称会导致误解,代码错误等。一般来说,绝对不要使用typedef结构体定义。编写'struct Alias'或'struct Alias *'要比试图记住'no_getOf'实际上是一个指针并且实际上是一个指向结构Alias的指针要清楚得多。 Typedef'ing结构混淆了代码,导致错误理解,并且使编译器名称空间混乱。 – user3629249
@ user3629249好的,谢谢你,先生!但是代码片段仅仅是如何在源代码中看到一些结构的一个纯粹的例子,因此如果结构在其末尾有一些糟糕的名字,非常烦人,如上所述。我明白,这样的结构名称不是一个好的做法,而且很混乱。但是,我仍然需要澄清,即使它是_Alias和* pAlias :) –