반응형
[N...]이란?C 집약 이니셜라이저의 M > 평균?
sys.c 행 123에서:
void *sys_call_table[__NR_syscalls] =
{
[0 ... __NR_syscalls-1] = sys_ni_syscall,
#include <asm/unistd.h>
};
sys_call_table어레이에 대한 일반적인 포인터입니다.단, 표기법은 무엇입니까?
[0 ... __NR_syscalls-1]
이 뭐죠?...?
편집:
나는 여기서 또 다른 C 트릭을 배웠다.#include <asm/unistd.h>사전 처리되어 그 내용으로 대체되어 에 할당됩니다.[0 ... _NR_syscalls-1].
이것은 Designated Initializer를 사용한 초기화입니다.
범위 기반 초기화는 gnu gcc 확장입니다.
요소의 범위를 동일한 값으로 초기화하려면
[first ... last] = value이것은 GNU 확장입니다.예를들면,int widths[] = { [0 ... 9] = 1, [10 ... 99] = 2, [100] = 3 };
그것은 휴대할 수 없다.를 사용한 컴파일-pedantic그렇게 말씀 드리면요.
여기에서는 어떻게 작동하나요?
프리프로세서가 교체됩니다.#include <asm/unistd.h>실제 내용(각종 심볼 상수와 유형을 정의하고 다양한 함수를 선언함)을 범위 기반 구성에서 사용하여 포인터 배열을 초기화하는 데 추가로 사용됩니다.
언급URL : https://stackoverflow.com/questions/10071304/what-does-n-m-mean-in-c-aggregate-initializers
반응형
'source' 카테고리의 다른 글
| Nuxt/Vue 반응체 속성 (0) | 2022.08.11 |
|---|---|
| vue-cli 설정 중 문제 발생 (0) | 2022.08.11 |
| 자바에서의 @UniqueConstraint 주석 (0) | 2022.08.11 |
| 함수 포인터의 배열을 사용하려면 어떻게 해야 합니까? (0) | 2022.08.11 |
| Linux 커널은 어떻게 컴파일 할 수 있습니까? (0) | 2022.08.11 |