typedef结构清晰度

Kye*_*nes 3 c typedef linked-list

我对typedef感到困惑,任何人都可以将其转录为正常的构图吗?结构?我真的不想处理typedef因为它让我感到困惑

struct stackNode
{
  int data;
  struct stackNode *nxtptr;
};

typedef struct stackNode StackNode;
typedef StackNode *StackNodePtr;
Run Code Online (Sandbox Code Playgroud)

typedef struct stackNode StackNode;是一样的struct stackNode StackNodetypedef StackNode *StackNodePtr;是一样的 struck stackNode *StackNodePtr

Pab*_*ruz 7

如果您不想使用typedef,可以始终使用完整类型名称:

代替:

StackNode sn;
Run Code Online (Sandbox Code Playgroud)

你会用:

struct stackNode sn;
Run Code Online (Sandbox Code Playgroud)

代替:

StackNodePtr snp;
Run Code Online (Sandbox Code Playgroud)

你会用:

struct stackNode *snp;
Run Code Online (Sandbox Code Playgroud)

声明完全一样.


Lun*_*din 7

编写相同内容的更常见方法是:

typedef struct stackNode
{
  int data;
  struct stackNode *nxtptr;

} StackNode_t;
Run Code Online (Sandbox Code Playgroud)

stackNode所谓的"struct tag" 在哪里,是StackNode_t该类型的实际名称.如果你声明这样的结构,程序的其余部分将不需要关注struct标记,你可以使用nxtptr,就像它是StackNode_t一样.