반응형
C구조를 인라인으로 할당하려면 어떻게 해야 합니까?
typedef struct {
int hour;
int min;
int sec;
} counter_t;
코드에서 각 멤버 변수를 명시적으로 초기화하지 않고 이 구조의 인스턴스를 초기화합니다.즉, 다음과 같은 것을 하고 싶습니다.
counter_t counter;
counter = {10,30,47}; //doesn't work
10시 30분 47초
보다는
counter.hour = 10;
counter.min = 30;
counter.sec = 47;
이에 대한 구문을 기억하지 않고 구글링에서 즉시 이 작업을 수행할 방법을 찾지 못했습니다.
감사합니다!
유지보수를 위해 다음과 같이 명시적으로 식별된 변수와 함께 목록 구문을 사용하는 것이 좋습니다.
counter_t counter = {.hour = 10, .min = 30, .sec = 47};
또는 인라인으로 되돌리는 경우 다음과 같습니다.
return (struct counter_t){.hour = 10, .min = 30, .sec = 47};
변수가 선언되는 순서를 변경하는 시나리오를 상상할 수 있습니다.변수를 명시적으로 특정하지 않으면 변수의 순서를 수정하기 위해 모든 코드를 검토해야 합니다.이렇게 하면 더 깨끗하고 읽기 쉬울 수 있습니다.
초기화:
counter_t c = {10, 30, 47};
할당:
c = (counter_t){10, 30, 48};
후자는 "복합 리터럴"이라고 불립니다.
언급URL : https://stackoverflow.com/questions/4777360/how-to-assign-a-c-struct-inline
반응형
'programing' 카테고리의 다른 글
PHP에서 현재 함수의 이름을 검색하는 중 (0) | 2022.10.05 |
---|---|
Java에서 a.getClass()와 A.class의 차이점은 무엇입니까? (0) | 2022.10.05 |
Object.getOwnPropertyNames와 Object.열쇠들. (0) | 2022.10.05 |
모든 호스트에서 MySQL 루트 액세스 (0) | 2022.10.05 |
마리아 표의 여러 열을 업데이트하는 방법DB (0) | 2022.10.05 |