플래그 (프로그래밍)

플래그(flag)는 컴퓨터 프로그래밍에서 '파일 비어 있음' 또는 '전체 대기열 상태'와 같은 특수 코드 조건을 신호하기 위해 이진 값 또는 불리언 변수를 저장하는 데 사용되는 하나 이상의 비트를 나타낼 수 있다.

플래그는 데이터베이스 레코드와 같은 정의된 자료 구조의 개체로 발견될 수 있으며 플래그에 포함된 값의 의미는 일반적으로 해당 플래그가 속한 데이터 구조와 관련하여 정의된다. 많은 경우 플래그의 이진 값은 여러 가지 가능한 상태 중 하나를 나타내는 것으로 이해된다.  다른 경우, 이진 값은 비트 필드에서 "기록 가능" 또는 "삭제 가능"과 같은 능력이나 권한과 관련된 하나 이상의 속성을 나타낼 수 있다. 그러나 플래그 값에 할당할 수 있는 다른 의미도 많이 있다. 플래그의 일반적인 용도 중 하나는 향후 처리를 위해 데이터 구조를 표시하거나 지정하는 것이다.

마이크로프로세서 및 기타 논리 장치 내에서 플래그는 일반적으로 다양한 작업의 중간 또는 최종 상태나 결과를 제어하거나 나타내는 데 사용된다. 마이크로프로세서에는 일반적으로 이러한 플래그로 구성된 상태 레지스터가 있으며, 플래그는 산술 오버플로가 발생한 경우와 같은 다양한 사후 작업 조건을 나타내는 데 사용된다. 플래그는 조건부 점프 명령 처리와 같은 후속 작업에서 활용될 수 있다. 예를 들어 X86 어셈블리 언어의 je(같으면 점프) 명령어는 Z(제로) 플래그가 이전 작업에 의해 설정된 경우 점프를 초래한다.

명령줄 스위치를 플래그라고도 한다.  명령줄 프로그램은 이 기사의 의미에서 명령줄 스위치를 플래그로 변환하는 옵션 구문 분석기로 시작하는 경우가 많다.

 같이 보기 
 비트 필드
 열거형
 세마포어
 상태 레지스터

 각주 

분류:운영체제 기술
분류:중앙 처리 장치
분류:디지털 레지스터