读书人

printf(quot;%%d%dquot; 123); C是如何样编译的

发布时间: 2012-02-15 12:09:44 作者: rapoo

printf("%%d%d", 123); C是怎么样编译的呢?
printf( "%%d%d ", 123);
C是怎么样编译的呢?
输出
%d123

[解决办法]
想输出%
就得用%%
比如:printf( "%f%% ",1.0/3);
这个和转意字符有类似
------------------------------------去看看任何一本c语言的书应该都有提起
至于为什么?
你参考linux中printf的实现会发现
在vsprintf中(printf是调用vsprintf实现的)在找到%后的switch最后的default中
是这样的:
if(*fmt!= '% ')
*str++= '% ';
if(*fmt)
*str++= '% ';
.
.
.
.
即;如果%后面不是格式化参数就直接把他写到str中(在这里也就是显示出来啦)
----------------
不知道说清楚没。。。。

读书人网 >C语言

热点推荐