printf格式化输出时动态指定字符宽度
2009-04-16 21:16
417 查看
笔者最近开发的项目中,经常要打印一些地址信息。而开发的软件既要在32位的cpu上运行,还要在64位CPU上运行。之前做的很笨,为了兼容,每次遇到需要打印的地方,就得用宏区分开,写两句打印,很是麻烦。eg:
#if ( CPU == IA32)
printf("The address of var is %08x/n", &var);
#else if(CPU == IA64)
printf("The address of var is %016x/n",&var);
#endif
每次都这么弄,被弄烦了,就想偷懒,把这两句统一成一句。到处找资料,总算搞定:用*来完成动态指定字符宽度。代码如下:
printf("The address of var is %0*x/n",2*sizeof(void *), &var);
在32位机和64机上,2*sizeof(void *)的值分别是8和16,0后面的*分别被替代为8和16。实现了大一统。
#if ( CPU == IA32)
printf("The address of var is %08x/n", &var);
#else if(CPU == IA64)
printf("The address of var is %016x/n",&var);
#endif
每次都这么弄,被弄烦了,就想偷懒,把这两句统一成一句。到处找资料,总算搞定:用*来完成动态指定字符宽度。代码如下:
printf("The address of var is %0*x/n",2*sizeof(void *), &var);
在32位机和64机上,2*sizeof(void *)的值分别是8和16,0后面的*分别被替代为8和16。实现了大一统。
相关文章推荐
- java中JTextPane使输出字符到指定的宽度换行,并将垂直滚动条的位置移动到输出的最后位置
- 【转】应用 printf 语句格式化输出字符
- 应用 printf 语句格式化输出字符
- 十九、将文件的输出格式化为指定的宽度:
- printf——动态指定输出格式长度
- C语言printf——动态指定输出格式长度
- Python 以指定宽度格式化输出(format)
- C语言printf——动态指定输出格式长度
- printf--动态指定输出格式长度
- c语言printf--动态指定输出格式长度
- C语言笔记---printf格式化输出
- KEIL C51 printf格式化输出特殊用法
- printf()格式化输出详解
- ASP.NET 中字符的格式化输出
- 十、shell printf命令:(格式化输出语句)
- 有关数组 & 动态数组,输出数组中最长字符以及最短字符,若最长最短不止一个,都输出
- C语言--格式化输入/输出函数(printf/scanf,fprintf/fscanf,sprintf,sscanf)
- C语言字符输出格式化
- C语言 printf /sprintf格式化 输出 右对齐补零
- STM32-重定向C库printf 格式化输出符号详细说明