2013-11-28 4 views
0

몇 년 전, 나는 에 대한 how to initialize a timespec struct에 대한 질문을 최소한 코드 라인과 함께 상태 (nsec 및 초)와 비교했습니다.itimerspec 초기화 struct - memset이 좋은 선택입니까?

많은 응답으로 은 memset을 사용하지 말라고했는데, 이것은 크로스 플랫폼 호환이 아니며 수많은 다른 문제가 발생할 수 있기 때문입니다.

struct timeval freshStruct = struct timeval){0}; 

년 후, 나는 지금이 timespec이 구조체 내에있는 itimerspec 구조체를 초기화 할 : 그 결과, 나는 다음과 같은 방법을 채택했다.

struct itimerspec alarmTimeFormatted; 
alarmTimeFormatted.it_interval = (struct timespec){0}; 
alarmTimeFormatted.it_value = (struct timespec){0}; 

내가 한 줄이 itimerspec 구조체를 초기화 memset 함수를 사용하여 보여 다른 answers here on StackOverflow를 참조하십시오 나 다음을 수행하는 한 가지 방법이다.

그래서 지금은 궁금합니다 - itimerspec 구조체에 대해 다른 것이 있습니까? 아니면이 나쁜 대답입니까? 단 한 줄로 외부/내부 구조체를 초기화하는 웅장한 방법이 있습니까?

감사합니다.

+0

@ itimerspec alarmTimeFormatted = {{0}}; ' – Erik

+0

@Erik - fantastic을 사용합니다. 그것이 효과가 있다는 것을 인식하지 못했지만 그것은 의미가 있습니다. memset의 사용에 관해서는 여전히 흥미 롭다. – BSchlinker

답변

1

여전히 좋지 않습니다. Erik은 주석에서 가능한 해결책을 제시했지만 일반적으로 C++에서는 생성자를 사용합니다. itimerspec::itimerspec() : it_interval { 0 }, it_value { 0 } { /***/ }

관련 문제