Advertisement

深入认识计算机系统中的unsigned char/char探索其特性及应用

阅读量:

近期再次阅读《深入理解计算机系统》一书时,当翻至中文版第31页,对书中所展示的程序代码产生了疑问。

复制代码
 typedef unsigned char *byte_pointer;

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

为何byte_pointer被定义为unsigned char类型,而非int或char*呢?无需过多解释,直接进行实验验证。

实验代码:

复制代码
 void show_int(int x) {

    
 	show_byte(byte_pointer(&x), sizeof(int));
    
 }
    
 int main()
    
 {
    
 	unsigned int test = 12345;
    
 	unsigned int test2 = 54321;
    
 	show_int(test);
    
 	show_int(test2);
    
 	return 0;

全部评论 (0)

还没有任何评论哟~