← Documents Documentation/translations/it_IT/doc-guide/parse-headers.rst GitHub 원문 ↗

Linux 6.18.37 · Translations

uAPI 헤더 포함과 parse_headers.pl 사용법

uAPI C 헤더를 Sphinx 참조가 포함된 reStructuredText로 변환하는 parse_headers.pl의 구문, 옵션, 예외 규칙과 예제를 설명합니다.

Source pathDocumentation/translations/it_IT/doc-guide/parse-headers.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약·해설

parse-headers.rst:1-195

`parse_headers.pl`은 uAPI 헤더의 함수, 매크로, ioctl, 구조체, typedef, 열거형과 값을 찾아 Sphinx 참조가 포함된 reStructuredText를 생성합니다. 문서 빌드에 통합하면 커널에서 사라진 심볼을 Sphinx 경고로 발견할 수 있습니다.

선택적 예외 파일은 `ignore type name`으로 불필요한 링크를 없애고 `replace type name new_value`로 참조 대상을 교정합니다. 자료형은 기본적으로 `:c:type:`, ioctl·정의·열거형 값은 `:ref:` 역할을 사용합니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 .. include:: ../disclaimer-ita.rst
2
3 :Original: Documentation/doc-guide/index.rst
4
5 =========================================
6 Includere gli i file di intestazione uAPI
7 =========================================
8
9 Qualche volta è utile includere dei file di intestazione e degli esempi di codice C
10 al fine di descrivere l'API per lo spazio utente e per generare dei riferimenti
11 fra il codice e la documentazione. Aggiungere i riferimenti ai file dell'API
12 dello spazio utente ha ulteriori vantaggi: Sphinx genererà dei messaggi
13 d'avviso se un simbolo non viene trovato nella documentazione. Questo permette
14 di mantenere allineate la documentazione della uAPI (API spazio utente)
15 con le modifiche del kernel.
16 Il programma :ref:`parse_headers.pl <it_parse_headers>` genera questi riferimenti.
17 Esso dev'essere invocato attraverso un Makefile, mentre si genera la
18 documentazione. Per avere un esempio su come utilizzarlo all'interno del kernel
19 consultate ``Documentation/userspace-api/media/Makefile``.
20
21 .. _it_parse_headers:
22
23 parse_headers.pl
24 ^^^^^^^^^^^^^^^^
25
26 NOME
27 ****
28
29
30 parse_headers.pl - analizza i file C al fine di identificare funzioni,
31 strutture, enumerati e definizioni, e creare riferimenti per Sphinx
32
33 SINTASSI
34 ********
35
36
37 \ **parse_headers.pl**\ [<options>] <C_FILE> <OUT_FILE> [<EXCEPTIONS_FILE>]
38
39 Dove <options> può essere: --debug, --usage o --help.
40
41
42 OPZIONI
43 *******
44
45
46
47 \ **--debug**\
48
49 Lo script viene messo in modalità verbosa, utile per il debugging.
50
51
52 \ **--usage**\
53
54 Mostra un messaggio d'aiuto breve e termina.
55
56
57 \ **--help**\
58
59 Mostra un messaggio d'aiuto dettagliato e termina.
60
61
62 DESCRIZIONE
63 ***********
64
65 Converte un file d'intestazione o un file sorgente C (C_FILE) in un testo
66 reStructuredText incluso mediante il blocco ..parsed-literal
67 con riferimenti alla documentazione che descrive l'API. Opzionalmente,
68 il programma accetta anche un altro file (EXCEPTIONS_FILE) che
69 descrive quali elementi debbano essere ignorati o il cui riferimento
70 deve puntare ad elemento diverso dal predefinito.
71
72 Il file generato sarà disponibile in (OUT_FILE).
73
74 Il programma è capace di identificare *define*, funzioni, strutture,
75 tipi di dato, enumerati e valori di enumerati, e di creare i riferimenti
76 per ognuno di loro. Inoltre, esso è capace di distinguere le #define
77 utilizzate per specificare i comandi ioctl di Linux.
78
79 Il file EXCEPTIONS_FILE contiene due tipi di dichiarazioni:
80 \ **ignore**\ o \ **replace**\ .
81
82 La sintassi per ignore è:
83
84 ignore \ **tipo**\ \ **nome**\
85
86 La dichiarazione \ **ignore**\ significa che non verrà generato alcun
87 riferimento per il simbolo \ **name**\ di tipo \ **tipo**\ .
88
89
90 La sintassi per replace è:
91
92 replace \ **tipo**\ \ **nome**\ \ **nuovo_valore**\
93
94 La dichiarazione \ **replace**\ significa che verrà generato un
95 riferimento per il simbolo \ **name**\ di tipo \ **tipo**\ , ma, invece
96 di utilizzare il valore predefinito, verrà utilizzato il valore
97 \ **nuovo_valore**\ .
98
99 Per entrambe le dichiarazioni, il \ **tipo**\ può essere uno dei seguenti:
100
101
102 \ **ioctl**\
103
104 La dichiarazione ignore o replace verrà applicata su definizioni di ioctl
105 come la seguente:
106
107 #define VIDIOC_DBG_S_REGISTER _IOW('V', 79, struct v4l2_dbg_register)
108
109
110
111 \ **define**\
112
113 La dichiarazione ignore o replace verrà applicata su una qualsiasi #define
114 trovata in C_FILE.
115
116
117
118 \ **typedef**\
119
120 La dichiarazione ignore o replace verrà applicata ad una dichiarazione typedef
121 in C_FILE.
122
123
124
125 \ **struct**\
126
127 La dichiarazione ignore o replace verrà applicata ai nomi di strutture
128 in C_FILE.
129
130
131
132 \ **enum**\
133
134 La dichiarazione ignore o replace verrà applicata ai nomi di enumerati
135 in C_FILE.
136
137
138
139 \ **symbol**\
140
141 La dichiarazione ignore o replace verrà applicata ai nomi di valori di
142 enumerati in C_FILE.
143
144 Per le dichiarazioni di tipo replace, il campo \ **new_value**\ utilizzerà
145 automaticamente i riferimenti :c:type: per \ **typedef**\ , \ **enum**\ e
146 \ **struct**\. Invece, utilizzerà :ref: per \ **ioctl**\ , \ **define**\ e
147 \ **symbol**\. Il tipo di riferimento può essere definito esplicitamente
148 nella dichiarazione stessa.
149
150
151 ESEMPI
152 ******
153
154
155 ignore define _VIDEODEV2_H
156
157
158 Ignora una definizione #define _VIDEODEV2_H nel file C_FILE.
159
160 ignore symbol PRIVATE
161
162
163 In un enumerato come il seguente:
164
165 enum foo { BAR1, BAR2, PRIVATE };
166
167 Non genererà alcun riferimento per \ **PRIVATE**\ .
168
169 replace symbol BAR1 :c:type:\`foo\`
170 replace symbol BAR2 :c:type:\`foo\`
171
172
173 In un enumerato come il seguente:
174
175 enum foo { BAR1, BAR2, PRIVATE };
176
177 Genererà un riferimento ai valori BAR1 e BAR2 dal simbolo foo nel dominio C.
178
179
180 BUGS
181 ****
182
183 Riferire ogni malfunzionamento a Mauro Carvalho Chehab <[email protected]>
184
185
186 COPYRIGHT
187 *********
188
189
190 Copyright (c) 2016 by Mauro Carvalho Chehab <[email protected]>.
191
192 Licenza GPLv2: GNU GPL version 2 <https://gnu.org/licenses/gpl.html>.
193
194 Questo è software libero: siete liberi di cambiarlo e ridistribuirlo.
195 Non c'è alcuna garanzia, nei limiti permessi dalla legge.
196

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

uAPI 헤더를 문서에 포함하는 이유

1-24

이 페이지는 이탈리아어 번역 공통 고지 `../disclaimer-ita.rst`를 포함하며 원본 문서 위치를 `Documentation/doc-guide/index.rst`로 표시합니다. 내부 앵커 `it_parse_headers`는 뒤의 `parse_headers.pl` 설명을 참조하는 데 사용됩니다.

사용자 공간 API를 설명할 때 헤더 파일과 C 코드 예제를 문서에 직접 포함하면 코드와 설명 사이에 참조 링크를 만들 수 있습니다. 독자는 문서에서 심볼의 정의와 관련 API 설명을 오갈 수 있습니다.

uAPI 파일을 참조하면 유지보수 측면의 이점도 생깁니다. 문서에서 가리키는 심볼을 찾을 수 없을 때 Sphinx가 경고하므로, 커널 변경과 사용자 공간 API 문서가 어긋나는 문제를 빌드 단계에서 발견할 수 있습니다.

`parse_headers.pl`은 헤더의 C 심볼을 분석해 이런 참조를 생성합니다. 문서 생성 과정의 Makefile에서 호출해야 하며, 커널 트리의 실제 사용 예는 `Documentation/userspace-api/media/Makefile`에서 확인할 수 있습니다.

Makefile에 변환 단계를 넣으면 입력 헤더가 바뀔 때 출력 문서도 같은 빌드 흐름에서 다시 만들어집니다. 사람이 복사한 코드 조각을 별도로 관리하는 방식보다 실제 uAPI 선언과 문서의 차이를 줄일 수 있습니다.

uAPI 헤더 포함 효과
기능효과
헤더·C 예제 포함API 정의를 문서와 함께 제시
심볼 참조 생성코드와 API 설명 사이 이동
Sphinx 경고사라지거나 바뀐 심볼 조기 발견
Makefile 통합문서 빌드 때 자동 갱신

소스와 문서를 연결했을 때 얻는 결과입니다.

헤더 문서화 흐름
uAPI C 헤더parse_headers.pl
참조가 삽입된 reStructuredTextSphinx 빌드
API 문서누락 심볼 경고

Makefile이 변환기를 실행하고 Sphinx가 참조를 검증합니다.

.. include:: ../disclaimer-ita.rst

:Original: Documentation/doc-guide/index.rst

=========================================
Includere gli i file di intestazione uAPI
=========================================

Qualche volta è utile includere dei file di intestazione e degli esempi di codice C
al fine di descrivere l'API per lo spazio utente e per generare dei riferimenti
fra il codice e la documentazione. Aggiungere i riferimenti ai file dell'API
dello spazio utente ha ulteriori vantaggi: Sphinx genererà dei messaggi
d'avviso se un simbolo non viene trovato nella documentazione. Questo permette
di mantenere allineate la documentazione della uAPI (API spazio utente)
con le modifiche del kernel.
Il programma :ref:`parse_headers.pl <it_parse_headers>` genera questi riferimenti.
Esso dev'essere invocato attraverso un Makefile, mentre si genera la
documentazione. Per avere un esempio su come utilizzarlo all'interno del kernel
consultate ``Documentation/userspace-api/media/Makefile``.

.. _it_parse_headers:

parse_headers.pl
^^^^^^^^^^^^^^^^

이름, 명령 구문과 옵션

25-61

`parse_headers.pl`은 C 파일을 분석해 함수, 구조체, 열거형, 정의를 식별하고 Sphinx 참조를 만드는 프로그램입니다.

명령 구문은 `parse_headers.pl [<options>] <C_FILE> <OUT_FILE> [<EXCEPTIONS_FILE>]`입니다. 입력 C 파일과 출력 파일은 필수이고 예외 파일은 선택 사항입니다.

`--debug`는 상세 출력 모드를 켭니다. 파서가 어떤 심볼을 감지하고 어떤 참조로 바꾸는지 추적할 때 사용합니다.

`--usage`는 짧은 사용법을 출력하고 종료합니다. 필요한 인자 순서를 빠르게 확인할 때 적합합니다.

`--help`는 자세한 도움말을 출력하고 종료합니다. 지원되는 옵션과 처리 방식을 전체적으로 확인할 때 사용합니다.

parse_headers.pl - analizza i file C al fine di identificare funzioni,
strutture, enumerati e definizioni, e creare riferimenti per Sphinx

SINTASSI
********


\ **parse_headers.pl**\  [<options>] <C_FILE> <OUT_FILE> [<EXCEPTIONS_FILE>]

Dove <options> può essere: --debug, --usage o --help.


OPZIONI
*******



\ **--debug**\

 Lo script viene messo in modalità verbosa, utile per il debugging.


\ **--usage**\

 Mostra un messaggio d'aiuto breve e termina.


\ **--help**\

 Mostra un messaggio d'aiuto dettagliato e termina.
명령 인자
인자필수 여부역할
C_FILE필수분석할 C 헤더 또는 소스
OUT_FILE필수생성할 reStructuredText 출력
EXCEPTIONS_FILE선택무시·대체 규칙

필수 입력과 선택 입력을 구분합니다.

명령 옵션
옵션동작
--debug상세 진단 출력
--usage짧은 사용법 출력 후 종료
--help상세 도움말 출력 후 종료

진단과 도움말 출력 모드를 정리합니다.


NOME
****


parse_headers.pl - analizza i file C al fine di identificare funzioni,
strutture, enumerati e definizioni, e creare riferimenti per Sphinx

SINTASSI
********


\ **parse_headers.pl**\  [<options>] <C_FILE> <OUT_FILE> [<EXCEPTIONS_FILE>]

Dove <options> può essere: --debug, --usage o --help.


OPZIONI
*******



\ **--debug**\

 Lo script viene messo in modalità verbosa, utile per il debugging.


\ **--usage**\

 Mostra un messaggio d'aiuto breve e termina.


\ **--help**\

 Mostra un messaggio d'aiuto dettagliato e termina.

변환 결과와 인식 대상

62-80

프로그램은 C 헤더 또는 소스인 `C_FILE`을 `.. parsed-literal` 블록으로 포함할 수 있는 reStructuredText로 변환합니다. 동시에 API 설명을 가리키는 참조를 심볼에 삽입합니다.

`parsed-literal`은 코드의 공백과 줄 구조를 리터럴처럼 보존하면서도 내부의 reStructuredText 참조를 해석할 수 있게 합니다. 단순 코드 블록과 달리 헤더 원문 모양과 클릭 가능한 API 링크를 함께 제공하는 선택입니다.

선택적인 `EXCEPTIONS_FILE`은 참조를 만들지 않을 항목과 기본값과 다른 대상을 가리킬 항목을 지정합니다. 생성 결과는 `OUT_FILE`에 기록됩니다.

파서는 `#define`, 함수, 구조체, typedef, 열거형, 열거형 값을 식별합니다. 각 종류에 맞는 Sphinx 참조를 만들며 Linux ioctl 명령을 정의하는 `#define`도 일반 매크로와 구별합니다.

변환의 목적은 C 코드를 다시 컴파일하거나 의미를 바꾸는 것이 아니라, 독자가 보는 헤더 표현에 문서 참조를 덧붙이는 것입니다. 따라서 생성 파일은 빌드 산출물로 취급하고 원본 API 정의는 계속 C 파일에서 관리합니다.

예외 파일에는 `ignore`와 `replace` 두 종류의 선언을 넣습니다. 하나는 참조 생성을 막고 다른 하나는 참조 대상을 바꿉니다.

파서가 인식하는 C 요소
범주
전처리 정의#define
호출 인터페이스함수, ioctl 명령
자료형struct, enum, typedef
열거형 값enum symbol

입력에서 찾아 참조 후보로 만드는 심볼 범주입니다.

예외 처리 분기
C 심볼 인식예외 파일 조회
규칙 없음기본 참조 생성
ignore참조 생략
replace지정 참조로 대체

인식된 심볼에 기본 참조 또는 예외 규칙을 적용합니다.

DESCRIZIONE
***********

Converte un file d'intestazione o un file sorgente C (C_FILE) in un testo
reStructuredText incluso mediante il blocco ..parsed-literal
con riferimenti alla documentazione che descrive l'API. Opzionalmente,
il programma accetta anche un altro file (EXCEPTIONS_FILE) che
descrive quali elementi debbano essere ignorati o il cui riferimento
deve puntare ad elemento diverso dal predefinito.

Il file generato sarà disponibile in (OUT_FILE).

Il programma è capace di identificare *define*, funzioni, strutture,
tipi di dato, enumerati e valori di enumerati, e di creare i riferimenti
per ognuno di loro. Inoltre, esso è capace di distinguere le #define
utilizzate per specificare i comandi ioctl di Linux.

Il file EXCEPTIONS_FILE contiene due tipi di dichiarazioni:
\ **ignore**\  o \ **replace**\ .

ignore와 replace 선언

81-98

`ignore` 구문은 `ignore type name`입니다. 지정한 `type`에 속하는 `name` 심볼에는 어떤 참조도 만들지 않습니다.

이 규칙은 헤더 가드처럼 문서 링크가 필요 없는 정의, 내부 전용 값, 또는 Sphinx에서 연결할 적절한 공개 대상이 없는 심볼에 사용합니다.

`replace` 구문은 `replace type name new_value`입니다. 심볼을 그대로 표시하되 기본 대상 대신 `new_value`가 가리키는 문서에 연결합니다.

대체 규칙은 여러 심볼이 하나의 형식 설명에 속하거나 자동 추론한 링크가 잘못된 대상을 선택할 때 유용합니다. `new_value`에는 필요하면 Sphinx 역할을 명시할 수 있습니다.

예외 선언의 `type`은 파서가 판정한 심볼 종류와 일치해야 합니다. 같은 이름을 적더라도 `define` 규칙은 열거형 `symbol`이나 `typedef`에는 적용되지 않습니다.

`ignore`와 `replace`는 입력 C 파일을 수정하지 않습니다. 두 선언은 문서 출력에서 링크를 만들지 여부와 목적지만 조정하므로 ABI 정의나 컴파일 결과에는 영향을 주지 않습니다.

La sintassi per ignore è:

ignore \ **tipo**\  \ **nome**\

La dichiarazione \ **ignore**\  significa che non verrà generato alcun
riferimento per il simbolo \ **name**\  di tipo \ **tipo**\ .


La sintassi per replace è:

replace \ **tipo**\  \ **nome**\  \ **nuovo_valore**\

La dichiarazione \ **replace**\  significa che verrà generato un
riferimento per il simbolo \ **name**\ di tipo \ **tipo**\ , ma, invece
di utilizzare il valore predefinito, verrà utilizzato il valore
\ **nuovo_valore**\ .
예외 선언 비교
선언심볼 표시참조
ignore type name유지생성하지 않음
replace type name new_value유지new_value로 생성

심볼 표시와 링크 생성 결과가 다릅니다.

replace 적용
type + name 일치기본 참조 계산
replace 규칙new_value 채택
출력 심볼새 문서 대상으로 연결

기본 추론을 명시한 대상으로 덮어씁니다.


La sintassi per ignore è:

ignore \ **tipo**\  \ **nome**\

La dichiarazione \ **ignore**\  significa che non verrà generato alcun
riferimento per il simbolo \ **name**\  di tipo \ **tipo**\ .


La sintassi per replace è:

replace \ **tipo**\  \ **nome**\  \ **nuovo_valore**\

La dichiarazione \ **replace**\  significa che verrà generato un
riferimento per il simbolo \ **name**\ di tipo \ **tipo**\ , ma, invece
di utilizzare il valore predefinito, verrà utilizzato il valore
\ **nuovo_valore**\ .

예외 규칙의 심볼 유형

99-150

`type`에는 `ioctl`, `define`, `typedef`, `struct`, `enum`, `symbol` 중 하나를 사용합니다. 같은 이름이라도 심볼 종류가 다르면 별개의 규칙으로 처리됩니다.

`ioctl`은 `_IOW`, `_IOR`, `_IOWR` 같은 Linux ioctl 명령 정의에 적용됩니다. 예제의 `VIDIOC_DBG_S_REGISTER`처럼 매크로 형태지만 일반 `define`과 구분해 문서 대상 유형을 다르게 관리합니다.

`define`은 `C_FILE`에서 발견한 일반 `#define`에 적용됩니다. 헤더 가드나 보조 매크로처럼 문서에서 링크할 필요가 없는 정의를 제외할 수 있습니다.

`typedef`는 입력 파일의 typedef 선언 이름에 적용됩니다. `replace`를 사용하면 해당 자료형이 설명된 다른 C domain 형식으로 연결할 수 있습니다.

`struct`는 구조체 이름에, `enum`은 열거형 이름에 적용됩니다. 태그 이름과 typedef 이름이 같은 경우에도 정확한 종류를 지정해야 합니다.

`symbol`은 열거형 내부의 개별 값 이름에 적용됩니다. 공개하지 않을 값은 무시하고 여러 값을 공통 열거형 설명으로 대체 연결할 수 있습니다.

`replace`의 `new_value`는 `typedef`, `enum`, `struct` 유형에서 기본적으로 `:c:type:` 참조를 사용합니다. C 자료형 문서가 Sphinx C domain에 등록되기 때문입니다.

반면 `ioctl`, `define`, `symbol`은 기본적으로 `:ref:`를 사용합니다. 선언에 참조 역할을 직접 적으면 이 자동 선택을 덮어쓸 수 있습니다.

\ **ioctl**\

 La dichiarazione ignore o replace verrà applicata su definizioni di ioctl
 come la seguente:

 #define	VIDIOC_DBG_S_REGISTER 	 _IOW('V', 79, struct v4l2_dbg_register)



\ **define**\

 La dichiarazione ignore o replace verrà applicata su una qualsiasi #define
 trovata in C_FILE.



\ **typedef**\

 La dichiarazione ignore o replace verrà applicata ad una dichiarazione typedef
 in C_FILE.



\ **struct**\

 La dichiarazione ignore o replace verrà applicata ai nomi di strutture
 in C_FILE.



\ **enum**\

 La dichiarazione ignore o replace verrà applicata ai nomi di enumerati
 in C_FILE.



\ **symbol**\

 La dichiarazione ignore o replace verrà applicata ai nomi di valori di
 enumerati in C_FILE.

 Per le dichiarazioni di tipo replace, il campo \ **new_value**\  utilizzerà
 automaticamente i riferimenti :c:type: per \ **typedef**\ , \ **enum**\  e
 \ **struct**\. Invece, utilizzerà :ref: per \ **ioctl**\ , \ **define**\  e
 \ **symbol**\. Il tipo di riferimento può essere definito esplicitamente
 nella dichiarazione stessa.
예외 type별 적용 대상
type적용 대상replace 기본 역할
ioctlLinux ioctl #define:ref:
define일반 #define:ref:
typedeftypedef 이름:c:type:
struct구조체 이름:c:type:
enum열거형 이름:c:type:
symbol열거형 값:ref:

각 키워드가 입력 파일의 어느 요소와 일치하는지 보여줍니다.

참조 역할 자동 선택
typedef / struct / enum:c:type:
ioctl / define / symbol:ref:
명시적 역할자동 선택 덮어쓰기

자료형과 그 밖의 심볼을 서로 다른 Sphinx 역할에 연결합니다.

Per entrambe le dichiarazioni, il \ **tipo**\  può essere uno dei seguenti:


\ **ioctl**\

 La dichiarazione ignore o replace verrà applicata su definizioni di ioctl
 come la seguente:

 #define	VIDIOC_DBG_S_REGISTER 	 _IOW('V', 79, struct v4l2_dbg_register)



\ **define**\

 La dichiarazione ignore o replace verrà applicata su una qualsiasi #define
 trovata in C_FILE.



\ **typedef**\

 La dichiarazione ignore o replace verrà applicata ad una dichiarazione typedef
 in C_FILE.



\ **struct**\

 La dichiarazione ignore o replace verrà applicata ai nomi di strutture
 in C_FILE.



\ **enum**\

 La dichiarazione ignore o replace verrà applicata ai nomi di enumerati
 in C_FILE.



\ **symbol**\

 La dichiarazione ignore o replace verrà applicata ai nomi di valori di
 enumerati in C_FILE.

 Per le dichiarazioni di tipo replace, il campo \ **new_value**\  utilizzerà
 automaticamente i riferimenti :c:type: per \ **typedef**\ , \ **enum**\  e
 \ **struct**\. Invece, utilizzerà :ref: per \ **ioctl**\ , \ **define**\  e
 \ **symbol**\. Il tipo di riferimento può essere definito esplicitamente
 nella dichiarazione stessa.

예외 파일 작성 예

151-179

`ignore define _VIDEODEV2_H`는 입력 파일의 헤더 가드 `_VIDEODEV2_H`에 참조를 만들지 않습니다. 헤더 가드는 API 심볼이 아니므로 문서 링크에서 제외하는 대표 사례입니다.

`ignore symbol PRIVATE`는 열거형 `enum foo { BAR1, BAR2, PRIVATE };`의 `PRIVATE` 값에 링크를 만들지 않습니다. 값 자체는 코드 예제에 남지만 문서 참조만 생략됩니다.

`replace symbol BAR1 :c:type:`foo``와 `replace symbol BAR2 :c:type:`foo``는 두 열거형 값을 C domain의 `foo` 형식 문서로 연결합니다.

이 방식은 개별 열거형 값마다 별도 문서 대상이 없을 때 유용합니다. 값의 의미를 설명하는 상위 열거형으로 링크를 모아 독자가 관련 정의를 찾게 합니다.

예외 파일을 검토할 때는 더 이상 존재하지 않는 심볼 규칙과 자동 참조로 충분해진 대체 규칙을 함께 정리해야 합니다. 오래된 규칙이 남으면 새 API 링크가 불필요하게 숨겨지거나 잘못된 문서로 연결될 수 있습니다.

ignore define _VIDEODEV2_H


Ignora una definizione #define _VIDEODEV2_H nel file C_FILE.

ignore symbol PRIVATE


In un enumerato come il seguente:

enum foo { BAR1, BAR2, PRIVATE };

Non genererà alcun riferimento per \ **PRIVATE**\ .

replace symbol BAR1 :c:type:\`foo\`
replace symbol BAR2 :c:type:\`foo\`


In un enumerato come il seguente:

enum foo { BAR1, BAR2, PRIVATE };

Genererà un riferimento ai valori BAR1 e BAR2 dal simbolo foo nel dominio C.
예제 결과
선언결과
ignore define _VIDEODEV2_H헤더 가드 링크 생략
ignore symbol PRIVATEPRIVATE 값 링크 생략
replace symbol BAR1 :c:type:`foo`BAR1을 enum foo 설명에 연결
replace symbol BAR2 :c:type:`foo`BAR2를 enum foo 설명에 연결

각 선언이 최종 문서의 링크에 미치는 영향을 정리합니다.

열거형 값 연결
BAR1 / BAR2replace symbol 규칙
:c:type:`foo`enum foo 문서
PRIVATEignore로 링크 제외

개별 값에서 상위 C 형식 문서로 참조를 모읍니다.

ESEMPI
******


ignore define _VIDEODEV2_H


Ignora una definizione #define _VIDEODEV2_H nel file C_FILE.

ignore symbol PRIVATE


In un enumerato come il seguente:

enum foo { BAR1, BAR2, PRIVATE };

Non genererà alcun riferimento per \ **PRIVATE**\ .

replace symbol BAR1 :c:type:\`foo\`
replace symbol BAR2 :c:type:\`foo\`


In un enumerato come il seguente:

enum foo { BAR1, BAR2, PRIVATE };

Genererà un riferimento ai valori BAR1 e BAR2 dal simbolo foo nel dominio C.

버그 보고, 저작권과 보증

180-195

오류와 오동작은 저자인 Mauro Carvalho Chehab의 문서에 기재된 연락처로 보고하라고 안내합니다.

저작권은 2016년 Mauro Carvalho Chehab에게 있으며, GNU GPL version 2인 GPLv2 조건으로 배포됩니다.

GPLv2에 따라 이 소프트웨어를 변경하고 재배포할 수 있습니다. 다만 법이 허용하는 범위에서 어떠한 보증도 제공하지 않습니다.

이 보증 부인은 도구가 모든 C 구문이나 프로젝트별 확장을 완벽히 처리한다고 약속하지 않는다는 의미입니다. 생성 결과와 경고는 문서 빌드에서 검토하고 필요한 예외 규칙을 유지해야 합니다.

배포 조건
항목내용
저작권Copyright (c) 2016 Mauro Carvalho Chehab
라이선스GNU GPL version 2
허용변경과 재배포
보증법이 허용하는 범위에서 없음

문서 끝의 권리와 책임 고지를 요약합니다.

BUGS
****

Riferire ogni malfunzionamento a Mauro Carvalho Chehab <[email protected]>


COPYRIGHT
*********


Copyright (c) 2016 by Mauro Carvalho Chehab <[email protected]>.

Licenza GPLv2: GNU GPL version 2 <https://gnu.org/licenses/gpl.html>.

Questo è software libero: siete liberi di cambiarlo e ridistribuirlo.
Non c'è alcuna garanzia, nei limiti permessi dalla legge.