#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];
答案 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_array
是thread_info
个MAX_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
类型。