Watcom C 的笔记3 Watcom C (3)
Watcom C 显示指定内存位置的值 终于完成了显示指定内存位置的程序,在XP下显示1MB以内的没有问题,最高 可能到16MB吧,应该和cmd.exe的设置有关系,但是不确定。WC没有DOS下面的IDE 环境,用起来没有TC顺手。 下面是程序代码,这个程序在TC3下无法正常工作,估计是因为TC使用的还是 segment:offset的内存形式而不是线性的。 #include <stdio.h> #include <ctype.h> int main() { unsigned long int address; unsigned char *data; unsigned int i,j; printf("Please Input the address:"); scanf("%lx",&address); //取得地址,按照16进制输入,无论前面是否有0x都认为是 //十六进制 for (i=0;i<0x10 ;i++ ) { printf("%08lxh ",address); //输出8位长的十六进制 for (j=0;j<0x10;j++) { data=(unsigned char*)(address+j); printf( "%02X ",*data); //输出2位大写的十六进制字符串 } for (j=0;j<0x10;j++) { data=(unsigned char*)(address+j); if (isprint(*data)) //如果是可以显示的字符,则输出 {printf( "%c",*data);} else {printf(".");} } printf("\n"); address+=0x10; } return( 0 ); } //后面要记得留一个空行 前面不添加 #include <ctype.h> 在编译过程中会出现一个warning GETCHAR.C(23): Warning! W131: No prototype found for function 'isprint' 不过对编译结果没有影响~ 错误代码 W131 可以在 cguide.pdf 上查到。 界面不是很漂亮,有空再研究一下Turbo Vision好了~ 2008-1-9