C++에서는 클래스 설정하는 곳에서 :: 세미콜론 2개를 사용하게 된다. (스코프 연산자)
1. 조건문에서 사용한다.
x = y ? 1 : 2 ;
y 조건식이 참이면 x = 1, 거짓이면 x = 2 가 된다.
2. bit field에서 사용한다.
구조체에서 bit를 나눠서 저장할때 사용한다.
#include <stdio.h> typedef struct { unsigned int a:1; unsigned int b:2; unsigned int c:2; unsigned int d:3; } Data; int main(void) { Data data; data.a = 0x1; data.b = 0x2; data.c = 0x5; data.d = 0x7; printf("%X %X %X %X\n",data.a,data.b,data.c,data.d); return 0; }
결과
1 2 1 7
data.c 의 경우 0x5 = 101(이진수) 값을 가지고 2bit만 저장이되므로 overflow되어 하위 2bit만 저장되어 01(이진수) = 1의 값만 출력 되었다.
##정정요청
답글삭제수정전 : data.c 의 경우 0x5 = 1001(이진수)
수정후 : data.c 의 경우 0x5 = 0101(이진수)
수정했습니다.
삭제