读书人

linux内核的里边的看你见过没

发布时间: 2012-10-17 10:25:46 作者: rapoo

linux内核的里面的,看你见过没

C/C++ code
   for (i = 0; i < boot_mem_map.nr_map; i++) {                 printk(" memory: %0*Lx @ %0*Lx ",  //这就是我的问题           field, (unsigned long long) boot_mem_map.map[i].size,            field, (unsigned long long) boot_mem_map.map[i].addr);

中间的printk里面的%0*Lx @ %0*Lx 是什么意思???

[解决办法]
http://msdn.microsoft.com/en-us/library/25366k66
[解决办法]
简短捷说就是用后面的field的值代替*指明输出要占的字符宽度,不足左边补0。
[解决办法]
一些就是*代表一度
平咱用%10d,但有候10度,咱不肯定
能用一量代示printf("%*D", a, b)
[解决办法]
格式的控制%md----m是个整数常量----这是最初学会的吧?----代表打印宽度的m限制了灵活性。
则有%*d----*对应后面的一个参数--整数表达式(最简单的就是变量)的值,打印宽度由这个值确定
例子
for(a=5; a<20; a++)
printf("%*d\n",a,b);

b的值打印宽度由a确定,而a(宽度可变)

读书人网 >C语言

热点推荐