sizeof(struct event_handling_struct)

//64位机器64位OS。

#include <stdio.h>

#define MAX_EVENTS 32
#define MAX_TRAPS 20
typedef void (*handler_t) (int , void *);

typedef struct event_handling_struct {
//intercepted_events在start.c里面被初始化为FFFF,即可以捕获16个中断。
  volatile unsigned long intercepted_events;//intercepted_events表示每个域都可以有16>个虚拟中断
  volatile unsigned long masked_events;
  volatile unsigned long pending_events;
  handler_t event_handler [MAX_EVENTS]; //define MAX_EVENTS 32
  handler_t trap_handler [MAX_TRAPS]; //define MAX_TRAPS 20

  volatile unsigned long event_flags;
  unsigned long *heap;
  unsigned long heap_size;
} event_handling_t;

int main(int argc, char** agrv)
{
    printf("sizeof(struct event_handling_struct) is %d \n", sizeof(event_handling_t)); //8*3 + (32 + 20) * 8 + 8 * 3 = 464 (B)
    return 0;
}

你可能感兴趣的:(sizeof(struct event_handling_struct))