我了解到typedef允许我给予一个结构体一个可以引用的名称,而不需要在名称前指定struct。
typedef struct Network {
bool enabled;
long long counter;
} Network;
但是,如果我需要从结构体内部创建指向Network结构体的指针,我将需要像下面这样使用非typedef名称。
typedef struct Network {
bool enabled;
long long counter;
struct Network* network;
} Network;
尽管如此,我遇到了一个案例,我无法弄清楚或找到任何资源,你可以在下面的例子中看到。现在,这实际上是做什么的?这个指针版本的网络做什么,与我上面提供的其他2个例子相比,它有什么用途?
typedef struct Network {
bool enabled;
long long counter;
} Network, *PNetwork;
我最初认为这和只把Network作为指针赋值是一样的,但我不确定。例如,我最初认为下面的内容会是一样的,但我不确定。
Network* network;
PNetwork network2;
1条答案
按热度按时间js81xvg61#
声明了两个typedef名称
类型
struct Network
的别名(typedef名称)Network
和指针类型struct Network *
的别名PNetwork
。您可以通过类比变量声明来考虑这样的typedef声明,例如
只有在typedef声明中才声明类型名而不是变量。
使用这些typedef名称,您可以声明变量,例如