typedef struct table_s {
struct table_s *next;
int content;
int is_header = -1;
} table_t;
is_header = -1에서 에러 발생
원칙적으로 구조체 선언 부분에서는 변수를 초기화할 수 없음
실제 구조체 변수가 생성(instantiation)된 이후에 초기화해야 함
#include <stdio.h>
#include <string.h>
typedef struct table_s {
struct table_s *next;
int content;
int is_header;
} table_t;
void print_table(table_t t)
{
printf("%p %d %d\n", t.next, t.content, t.is_header);
}
int main()
{
table_t t1 = {.content = 0,.is_header = -1 };
table_t t2 = { content: 0, is_header:-1 };
table_t t3;
memset((void *) &t3, 0, sizeof(t3));
table_t t4 = { 0 };
print_table(t1);
print_table(t2);
print_table(t3);
print_table(t4);
return 0;
}
(nil) 0 -1
(nil) 0 -1
(nil) 0 0
(nil) 0 0