면접 문제: 구조체

560 단어 면접 문제
1. 구조체 중의 사칭 작용
다음 프로그램의 출력 결과는 얼마입니까?
#include <stdio.h>
#include <string.h>

typedef struct{
	int a:2;
	int b:2;
	int c:1;
}test;
int main(){
	test t;
	t.a=1;
	t.b=3;
	t.c=1;
	printf("%d
%d
%d
",t.a,t.b,t.c); return 0; }

결과:
1
-1
-1
분석:
inta:2는 a가 2위, 즉 2진법 a=01을 차지하므로 출력 1
b는 두 자리를 차지하고 b=11이지만%d 출력이기 때문에 먼저 b를 32비트 int형으로 전환한다. 가장 높은 위치가 1이기 때문에 기본적으로 마이너스이기 때문에 11111111111111111111111111111111111111111111111111111111111111111111
즉 -1, c 유사

좋은 웹페이지 즐겨찾기