我想知道下面的函数show_int()实际上是......
此代码位于Computer Systems A Programmer's Perspective的第28页。
#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 :(得分:0)
最重要的是要了解*byte_pointer
(a.k.a。unsigned char
):
(byte_pointer) &x
您可能会将其视为将指针int
(在您的情况下:20)转换为一系列字节(可以是4或8或甚至更多字节,具体取决于体系结构)。
show_bytes()
函数正在做的只是迭代一个字节数组以显示其后续字节,将其格式化为hexadecimal format。