누구 지정된 이니셜 라이저에 대해 다음 줄을 설명해 주시겠습니까 :지정 초기화 생략 요소
이니셜 라이저 목록이 아니라 단지 말보다, 어디서나 집계에서 선언 된 요소를 생략 할 수 있습니다.
누구 지정된 이니셜 라이저에 대해 다음 줄을 설명해 주시겠습니까 :지정 초기화 생략 요소
이니셜 라이저 목록이 아니라 단지 말보다, 어디서나 집계에서 선언 된 요소를 생략 할 수 있습니다.
시도해보십시오. link.
아이디어는 초기화하는 동안 구조와 같은 복잡한 유형의 멤버를 참조 할 수 있어야합니다. 예 :
struct s {
int a, b;
};
int main() {
struct s = { .b = 42, .a = -42 };
return 0;
}
값을 지정할 때 융통성은 순서 독립적 인 것으로부터 얻습니다. 이것은 C99 표준에 추가되었으며 C99을 완전히 지원하지 않는 컴파일러 (또는 이전 버전의 표준 지원)가 지원하지 않을 수 있음을 기억하십시오.
은 사용자가 기존의 initialiser 목록을 사용하는 경우, 요소의 값이 순서대로 할당됩니다, 그래서 당신은이 구조체가있는 경우 :
foo_t value = { 7 };
:
는
typedef struct _foo {
int a;
int b;
} foo_t;
다음이 initialiser 명시 적으로 a
하지 b
할당
지정된 초기화 프로그램이 없으면 생략 할 수있는 요소는 모두 끝에 선언 된 것입니다.
usi 구조체의 첫 번째 가치에도 불구하고,
foo_t value = { .b = 8 };
그렇게
value.a
의 initialiser를 생략 : 지정 initialisers 겨, 당신은 어디서든 선언 요소를 생략 할 수 있습니다.