태그(프로그래밍)
Tag (programming)프로그래밍에서 태그는 그것에 전달된 다른 인수를 결정하는 서브루틴에 대한 인수로, 이는 서브루틴에 태그가 지정된 매개 변수를 무한정 많이 전달하는 방법으로 사용된다. 특히 태그는 아미가에서 여러 시스템 호출에 사용된다.OS v2.0 이상.
인아미가OS
이전 버전의 AmigaOS에서는, 시스템 호출이 많은 수의 파라미터를 함수 인수로 전달하지 않고 설정하도록 요구한다면, 함수는 그 파라미터를 함수 인수로 전달하지 않고, 그 인수를 보유하는 구조(예: 직관.library's)에 대한 포인터가 필요할 것이다.OpenWindow()필수의struct NewWindow17개의 다른 매개변수를 사용하여).태그는 "원래 파라미터에 간섭하지 않고 시스템 기능에 새로운 파라미터를 추가할 수 있게 해주기 때문에 아미가OS 2.0에 도입되었다.또한 매개변수 목록을 훨씬 더 명확하고 쉽게 지정할 수 있다."[1]
Amiga용 여러 타사 소프트웨어 라이브러리OS는 또한 태그를 광범위하게 사용한다.
예
| 아미가오스 1.3 | 아미가OS 2.0+ |
|---|---|
구조상의 창 *w; 구조상의 뉴윈도 nw = { 10, 10, 100, 100, 0, 1, IDCMP_CLOSEWINDOW, WFLG_SIZEGADGET WFLG_DRAGBAR WFLG_DEMGADGET WFLG_CLOSEGET WFLG_활성화, NULL, NULL, "위키윈도", NULL, NULL, 0, 0, 640, 400, 워벤치스크린 }; w = 오픈윈도(&nw); | 구조상의 창 *w; w = OpenWindowTags(NULL, WA_왼쪽, 10, WA_top, 10, WA_폭, 100, WA_높이, 100, WA_IDCMP, IDCMP_CLOSEWINDOW, WA_Flags, WFLG_SIZEGADGET WFLG_DRAGBAR WFLG_DEMGADGET WFLG_CLOSEGET WFLG_활성화, WA_Title, "위키윈도", WA_PubScreenName, "워크벤치", 태그_완료 ); |
태그가 없는 코드는 불명확하다(예:0, 1태그가 있는 코드가 자체 조정되는 동안 창 색상 정의)OpenWindowTags는 기본 파라미터로 되돌아가기 때문에 구조물에 있는 것보다 태그로 정의해야 하는 파라미터 수가 더 적다.
실행
AmigaOS는 태그 처리를 위한 기능을 제공한다.utility.library.
일반적으로
태그의 장점은 프로그래머가 태그나 대체품을 명시할 필요가 없기 때문에 기본 인수로 작업을 용이하게 한다는 것이다.이로부터 다른 장점, 즉 외부 도서관과의 전후 호환성을 모두 달성하는 용이성: 새로운 도서관은 프로그램에 의해 제공되지 않은 모든 매개변수를 기본값으로 설정하기만 하면 되기 때문에 이전 버전의 도서관을 위해 작성된 프로그램과 새로운 것을 위해 작성된 프로그램을 사용할 것이다.오래된 도서관은 단순히 새로 도입된 태그에 주의를 기울이지 않을 것이기 때문에, 도서관의 r 버전은 여전히 이전 버전과 함께 작동할 것이다.
태그의 단점은 태그의 처리가 구조물이나 스택에서 데이터를 단순히 읽는 것보다 느리다는 것이다.또한 컴파일 시간 유형 확인은 손실된다.
참고 항목
참조
- ^ Amiga ROM Kernal Reference Manual: Libraries (3rd ed.). p. 867. ISBN 0-201-56774-1.