기본 초기화 값으로 구조를 선언하는 방법이 있습니까?정의에서 구조체를 초기화하는 방법은 무엇입니까?
나는이 같은 structur를 정의하는 헤더 파일이 있습니다
typedef struct struc_s
{
size_t cost const = 2000;
size_t dmg const = 100;
size_t def const = 100;
size_t hull const = 1500;
size_t shield const = 300;
size_t capacity const = 2;
size_t destruc const = 10;
} struc_t;
을하지만이 당연히 작동하지 않습니다.
또한이 헤더 파일에 struc_t
유형의 var을 선언하는 방법으로도 문제가 없습니다. 그러나 나는 옳은 것을 기억한다. 나는 내가하고 싶은 것은이 헤더가 포함되어 어디 var = struc_s.dmg
등을 할 수 있기를 원하는 곳마다이고 결과는 그 var에 값 100
을 보유하고 있어야한다 extern
로 C 파일을 decalre해야합니다. 하지만 헤더의 다른 곳에서는 struc_s를 선언하고 싶지 않습니다. 이 동작을 보관할 수있는 방법이 있습니까?
은 기본 구조체가 될 수 있습니다. 여기에는 'extern const struc_t DEFAULT_STRUC'와 같은 doint가 포함되지 않은 evrywhere가 있습니다. 그게 나에게 좋을 것, 난 단지 선언하지 않고 thoose 값을 포함하는 구조체를 + 명시 적으로 초기화하고 싶습니다. – dhein
그리고 size_t를 사용하는 것은 CPU의 크기를 알기에 충분하기 때문입니다. 그러니 ... 나는 size_t처럼 jsut 진짜 좋은 이유가 없어. – dhein
'# ifndef'를 사용하여 답변을 업데이트하면 원하는대로 처리 할 수 있습니다. 즉, .c 파일에'DEFAULT_STRUC'를 넣고 헤더에'extern const struc_t DEFAULT_STRUC'를 쓰는 것은 잘못된 것이 아닙니다. –