C 언어 면접 문제비트 조작

비트 구조 면접 문제
2006 - 2 - 27 월요일 맑 음  

  
  
  
  
  1. #include <stdio.h> 
  2.  
  3. union { 
  4.     struct { 
  5.         unsigned short s1:3; 
  6.         unsigned short s2:3; 
  7.         unsigned short s3:3; 
  8.     }x; 
  9.     char c; 
  10. }v; 
  11.  
  12. int main() 
  13.     v.c = 100; 
  14.     printf("%d
    "
    , v.x.s3); 
  15.     return 0; 

A: 4 B: 0 C: 3 D: 6 정 답 은 A 입 니 다.
근 데 제 가 TURBO C 에서 실 행 된 답 은 1 입 니 다. TURBO C 버 전이 있어 서 실 행 된 결과 가 다른 건 가요?
---------------
저 는 ubuntu 10.1032 비트 시스템, gcc 컴 파일, 테스트 결 과 는 1 입 니 다. 구조 x 중의 세 개의 3bit 위 치 는 아래 의 방식 으로 저장 소 를 분배 하 는 것 으로 분석 되 었 습 니 다.
upper | s3 | s2 | s1
바이트 구성원 c 는 유 니 온 의 낮은 주소 에 있어 야 하기 때문에 유 니 온 데이터 할당 후 위치 변경:
upper | s3 | s2 | s1
                                c
                 1|100| 100
s3 의 값 은 1 이다.
다른 시스템 구조 에서 어떤 결과 가 나 왔 는 지 모 르 겠 습 니 다.

좋은 웹페이지 즐겨찾기