簡體   English   中英

C typedef和指向結構的指針

[英]C typedef and pointers to struct

如果我有以下內容:

typedef struct _MY_STRUCT
{
   int a;
   float b;
} MY_STRUCT, *PMYSTRUCT

*PMYSTRUCT做什么的? 現在是我需要聲明的指針類型還是僅可以使用的_MY_STRUCT指針?

我知道MY_STRUCT是一種新類型,需要按如下方式使用:

MY_STRUCT str;
str.a = 2;

但是那個*PMYSTRUCT呢?

PMYSTRUCT ms = NULL;

等於

MYSTRUCT* ms = NULL;

效果與

typedef MYSTRUCT * PMYSTRUCT;

它只是充當結構體指針的typedef。

MY_STRUCT s;
s.a = 10;
PMYSTRUCT ps = &s;
ps->a = 20;

在c中, typedef具有存儲類語義,就像staticautoextern

考慮一下:

static int a, *p; -聲明a為int類型的靜態變量,而p為類型為int指針的靜態變量。

typedef int a, *p聲明a為int類型,p為類型為int的指針

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM