반응형
구조 이니셜라이저에서 점(.)은 무엇을 의미합니까?
static struct fuse_oprations hello_oper = {
.getattr = hello_getattr,
.readdir = hello_readdir,
.open = hello_open,
.read = hello_read,
};
나는 이 C 구문을 잘 이해하지 못한다.구문의 이름을 몰라서 검색도 할 수 없어요.그게 뭔데요?
이것은 이니셜라이저에서 구조체의 특정 필드를 이름으로 설정할 수 있는 C99 기능입니다.그 전에 이니셜라이저는 모든 필드에 대한 값만 순서대로 포함해야 했습니다. 물론 여전히 작동합니다.
따라서 다음과 같은 구조에 대해:
struct demo_s {
int first;
int second;
int third;
};
...사용할 수 있습니다.
struct demo_s demo = { 1, 2, 3 };
...또는:
struct demo_s demo = { .first = 1, .second = 2, .third = 3 };
...혹은 다음과 같은 경우도 있습니다.
struct demo_s demo = { .first = 1, .third = 3, .second = 2 };
마지막 두 개는 C99 전용입니다.
이것들은 C99의 지정 이니셜라이저입니다.
로 알려져 있다.designated initialisation
(지정 이니셜라이저를 참조)."Initializer-list", 각각.
는 " 입니다.designator
이 경우 특정 멤버를 지정합니다.fuse_oprations
에 의해 지정된 오브젝트를 초기화하기 위한 구조체hello_oper
아이디
전체 구문은 COD3에서 이미 언급한 바와 같이 Designated Initializer로 알려져 있습니다.BOY는 일반적으로 선언 시 구조를 특정 값 또는 기본값으로 초기화해야 할 때 사용됩니다.
언급URL : https://stackoverflow.com/questions/8047261/what-does-dot-mean-in-a-struct-initializer
반응형
'programing' 카테고리의 다른 글
Vuex4 스토어를 감시하는 Vue3가 콜백 기능을 실행하지 않음 (0) | 2022.07.11 |
---|---|
Vuex에 기밀 데이터 저장 (0) | 2022.07.10 |
Set을 String으로 변환하는 방법[ ] (0) | 2022.07.10 |
"Unable to access jarfile" 오류의 원인은 무엇입니까? (0) | 2022.07.10 |
Java 웹 앱에서 UTF-8을 작동시키는 방법 (0) | 2022.07.10 |