首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2012-10-17 
linux内核的里面的,看你见过没C/C++ codefor (i 0 i boot_mem_map.nr_map i++) {printk( memory: %

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(宽度可变)

热点排行