0
#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];
4

3 回答 3

2

以下

struct thread_info thread_info_array[ MAX_THREADS ];

是先前声明的thread_info结构的数组。数组由MAX_THREADS元素组成;如果你改变常数,数组的大小就会改变。

请参阅C 常见问题解答,了解为什么需要第二个struct关键字。

于 2013-03-23T10:10:38.947 回答
2

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

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

于 2013-03-23T10:10:59.493 回答
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都与您在上面定义的类型相同。

于 2013-03-23T10:12:01.757 回答