2016-08-26 1 views
0

아래 show_int() 함수를 알고 싶습니다 ...C 코드 란 무엇입니까? - 컴퓨터 시스템 프로그래머의 관점

이 코드는 컴퓨터 시스템의 프로그래머 관점에서 볼 수 있습니다. 일련의 :

(byte_pointer) &x 

당신은 (20 귀하의 경우) int에 포인터를 변환으로 생각 할 수 있습니다

#include <stdio.h> 

typedef unsigned char *byte_pointer; 

void show_bytes(byte_pointer start, int len) { 
    int i; 
    for (i = 0; i < len; i++) { 
     printf("%.2x", start[i]); 
    } 
    printf("\n"); 
} 

void show_int(int x) { 
    show_bytes((byte_pointer) &x, sizeof(int)); 
} 

void main() { 
    show_int(20); 
    getchar(); 
} 

답변

0

이해하는 가장 중요한 것은 *byte_pointer (일명 unsigned char)에 캐스팅이다 바이트 수 (아키텍처에 따라 4 또는 8 바이트 이상이 될 수 있음)

show_bytes() 함수가 수행중인 작업은 이후의 바이트를 표시하기 위해 바이트 배열을 반복하는 것입니다.이 바이트의 형식은 hexadecimal format입니다.

관련 문제