리눅스 커널 모듈관련해서 패치 제작 관련해서 만져보다가 발견했다.
구조체 초기화처럼
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)