이 블로그 검색

2024년 12월 28일 토요일

c99이후에 쓰이는 배열 초기화 문법.

 

리눅스 커널 모듈관련해서 패치 제작 관련해서 만져보다가 발견했다. 


구조체 초기화처럼 


static unsigned int video [] = { [0 ... MAX_ARRAY]  = -1U };

와 같은 명령어가 가능하다. 


이와 관련해 찾아보니, 배열을 { [0] = 1,   [1] = 2} 와 같은 방식으로 처리하는 것은, 

c99에서 도입된 방법이라는 것을 알 수 있었으며,

...을 사용해 typing을 줄이는 기술은, gnu c compiler 쪽 특수 문법임을 확인했다.

ISO C99에는 없는 기능이다. 


리눅스 커널모듈이니, gnu c99 문법은 적용가능하다. 


c89에서는 { 0,1,2,3,4} 이런 식으로 위치지정없이 순차적으로만 기입할 수 있다. 



그리고 ... operator는 case 문에서도 사용가능하다. 

_Bool lowercase_eh(char c)
{
    switch(c) case 'a' ... 'z': return 1;
    return 0; 
}   
참조:참조(Stack Overflow)

댓글 없음:

댓글 쓰기

가장 많이 본 글