2014년 12월 26일 금요일

C언어에서 :(콜론)을 사용하는 곳은 어디일까?

C언어에서 :(콜론) 사용하는곳은 어디일까?

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의 값만 출력 되었다.





댓글 2개:

  1. ##정정요청
    수정전 : data.c 의 경우 0x5 = 1001(이진수)
    수정후 : data.c 의 경우 0x5 = 0101(이진수)

    답글삭제