下面的 SLL 声明有什么区别

What is the difference in the following SLL declaration

场景 1:

 /*Structure declares a node for Singly Linked List*/
  typedef struct SLL
   {
      int data;
       struct SLL *next;
   }

场景 2:

struct SLL
{
   int data;
    struct SLL *next;
}node;

C 中 SLL 的首选声明是什么?

第一个在当前形式下毫无意义。

我想第一个应该是这样的:

typedef struct SLL
{
  int data;
   struct SLL *next;
} SLL;

以便它定义类型 SSLstruct SLL。之后你可以像这样声明变量:

SLL node;
node.data = 42;

第二个例子做的事情完全不同。它使一个变量node。所以之后你可以直接做:

node.data = 42;

Which is the preferred delcaration for SLL in C?

嗯,它们完全不同,做的事情也完全不同,所以无法比较。

然而,第一种方法是您通常会看到的,即类型定义。