gpt4 book ai didi

c - 我在 C 中看到了什么奇怪的东西?

转载 作者:行者123 更新时间:2023-11-30 18:51:15 25 4
gpt4 key购买 nike

   typedef struct stage_tag {
pthread_mutex_t mutex; /* Protect data */
pthread_cond_t avail; /* Data available */
pthread_cond_t ready; /* Ready for data */
int data_ready; /* Data present */
long data; /* Data to process */
pthread_t thread; /* Thread for stage */
struct stage_tag *next; /* Next stage */
} stage_t;

typedef struct pipe_tag {
pthread_mutex_t mutex; /* Mutex to protect pipe */
stage_t *head; /* First stage */
stage_t *tail; /* Final stage */
int stages; /* Number of stages */
int active; /* Active data elements */

} 管道_t;

  int pipe_create (pipe_t *pipe, int stages)
{
int pipe_index;
stage_t **link = &pipe->head, *new_stage, *stage;
int status;

......//问题出在pipe_create方法上。有一个 stage_t 类型的双指针,它具有三个值...这是什么样的声明?我真的很困惑。

最佳答案

单个声明语句可以声明类型相关的多个变量(从某种意义上说,它们仅在限定方面有所不同):

T **x, *y, z;

等同于:

T **x;
T *y;
T z;

一个有点荒谬的例子:

int main(void)
{
int a = 1, * const b = &a, * const * c = &b;
return a + *b + **c;
}

关于c - 我在 C 中看到了什么奇怪的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37363687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com