이 블로그 검색

레이블이 c99인 게시물을 표시합니다. 모든 게시물 표시
레이블이 c99인 게시물을 표시합니다. 모든 게시물 표시

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)

가장 많이 본 글