请解释这个结构用法

时间:2013-03-23 10:08:23

标签: c arrays multithreading struct

#define MAX_THREADS ( 17 )
struct thread_info
{
  unsigned int * thread_sp; /* Storage space for thread stack-pointer. */
  int thread_id;            /* Storage space for a thread ID. */
};
struct thread_info thread_info_array[ MAX_THREADS ];

我不明白第二个结构,你能解释它的作用吗?如果我们改变常量,常量如何改变结构?

更新

我认为它与:

相同
struct thread_info { unsigned int *thread_sp; int thread_id; } thread_info_array[MAX_THREADS];

3 个答案:

答案 0 :(得分:2)

以下

struct thread_info thread_info_array[ MAX_THREADS ];

是先前声明的thread_info结构的数组。该数组由MAX_THREADS个元素组成;如果更改常量,则数组的大小将发生变化。

请参阅C FAQ了解为何需要第二个struct关键字。

答案 1 :(得分:2)

struct thread_info thread_info_array[ MAX_THREADS ];暗示thread_info_arraythread_infoMAX_THREADS元素结构的数组。

更改常量只会更改数组中的元素数,但不会影响struct定义。

答案 2 :(得分:2)

这不是“第二结构”。

此:

struct thread_info
{
  unsigned int * thread_sp; /* Storage space for thread stack-pointer. */
  int thread_id;            /* Storage space for a thread ID. */
};

类型定义

此:

struct thread_info thread_info_array[ MAX_THREADS ];

是MAX_THREADS个元素的数组定义,其中每个元素都是您在上面定义的struct thread_info类型。