반응형
C에서이 "[0… 255] ="구문은 무엇입니까?
로 다스 려 js0n.c
코드 구문은 다음과 같습니다.
static void *gostruct[] =
{
[0 ... 255] = &&l_bad,
['\t'] = &&l_loop, [' '] = &&l_loop, ['\r'] = &&l_loop, ['\n'] = &&l_loop,
['"'] = &&l_qup,
[':'] = &&l_loop, [','] = &&l_loop,
['['] = &&l_up, [']'] = &&l_down, // tracking [] and {} individually would allow fuller validation but is really messy
['{'] = &&l_up, ['}'] = &&l_down,
['-'] = &&l_bare, [48 ... 57] = &&l_bare, // 0-9
[65 ... 90] = &&l_bare, // A-Z
[97 ... 122] = &&l_bare // a-z
};
........
.......
l_bad:
*vlen = cur - json; // where error'd
return 0;
........
........
아무도 여기서 무엇을하고 있는지 설명 할 수 있습니까? 구문은 무엇 [0 ... 255]
이며 &&l_bad
여기서 무엇을합니까?
...
GCC에서 제공하는 확장 프로그램입니다.
https://gcc.gnu.org/onlinedocs/gcc/Designated-Inits.html#Designated-Inits
요소 범위를 동일한 값으로 초기화하려면을 쓰십시오
[first ... last] = value
. 이것은 GNU 확장입니다. 예를 들어int widths[] = { [0 ... 9] = 1, [10 ... 99] = 2, [100] = 3 };
&&
또 다른 확장입니다
https://gcc.gnu.org/onlinedocs/gcc/Labels-as-Values.html#Labels-as-Values
단항 연산자를 사용하여 현재 함수 (또는 포함 함수)에 정의 된 레이블의 주소를 얻을 수 있습니다
&&
. 값의 유형은void *
입니다. 이 값은 상수이며 해당 유형의 상수가 유효한 모든 곳에서 사용할 수 있습니다. 예를 들면 다음과 같습니다.void *ptr; /* ... */ ptr = &&foo;
참고 URL : https://stackoverflow.com/questions/30388594/what-is-this-0-255-syntax-in-c
반응형
'programing tip' 카테고리의 다른 글
Angular 2 템플릿에서 let- *는 무엇입니까? (0) | 2020.08.06 |
---|---|
문자열 및 레이블의 지역화 및 세계화에 대한 모범 사례 (0) | 2020.08.06 |
정적 메소드가 인스턴스 메소드를 호출하는 C # 컴파일러가 오류 코드를 작성하지 않는 이유는 무엇입니까? (0) | 2020.08.06 |
Java 객체를 null로 설정하면 더 이상 아무것도하지 않습니까? (0) | 2020.08.06 |
주어진 Type이 Enum인지 확인 (0) | 2020.08.05 |