printf函数的格式转换说明符

时间:2024.4.5

Printf()函数的格式转换说明符


第二篇:puts()函数和printf函数的区别


puts()函数和printf函数的区别

puts()函数只用来输出字符串,没有格式控制,里面的参数可以直接是字符串或者是存放字符串的字符数组名。

printf()函数的输出格式很多,可以根据不同格式加转义字符,达到格式化输出。 puts()函数的作用与语句printf("%s\n",s);的作用形同。

例子:

①:

#include <stdio.h>

int main( void )

{

puts( "Hello world from puts!" ); //字符串,最后隐含带有'\0'字符 }

Output

Hello world from puts!

②:

main()

{

static char a[] = {'H','I','!','!'};

puts(a);

}

则输出 Hi!!烫烫烫烫烫烫烫烫烫烫烫烫dhaklhdwuhdaghdagdak... (后面都是乱码)

原因: a在结尾处缺少一个空字符('\0'), 所以它不是一个串,这样, puts() 就不知道什么时候停止输出, 它将会把 a 后面内存单元中的内容都打印出, 直到它在什么地方碰到了一个空字符为止。

③:

//==============

cat hello.c

#include <stdio.h>

int main(void)

{

printf("hello world!\n");

}

//========================

gcc -S hello.c -o hello.s 生成汇编代码

//========================

cat hello.s

//=========================

.file "hello.c"

.section .rodata

.LC0:

.string "hello world!"

.text

.globl main

.type main, @function

main:

leal 4(%esp), %ecx

andl $-16, %esp

pushl -4(%ecx)

pushl %ebp

movl %esp, %ebp

pushl %ecx

subl $4, %esp

movl $.LC0, (%esp)

call puts //========这里不是printf

addl $4, %esp

popl %ecx

popl %ebp

leal -4(%ecx), %esp

ret

.size main, .-main

.ident "GCC: (GNU) 4.1.2 (Ubuntu 4.1.2-0ubuntu4)" //=======gcc版本 .section .note.GNU-stack,"",@progbits

修改printf()的参数后

//==========================

#include <stdio.h>

int main(void)

{

printf("hello world! addr=0x%08x\n",printf);

}

//==========================

gcc -S hello.c

//======================

cat hello.s

//===========.file "hello.c"

.section .rodata

.LC0:

.string "hello world! addr=0x%08x\n"

.text

.globl main

.type main, @function

main:

leal 4(%esp), %ecx

andl $-16, %esp

pushl -4(%ecx)

pushl %ebp

movl %esp, %ebp

pushl %ecx

subl $20, %esp

movl $printf, 4(%esp)

movl $.LC0, (%esp)

call printf //=================编译后的汇编代码已经是printf了

addl $20, %esp

popl %ecx

popl %ebp

leal -4(%ecx), %esp

ret

.size main, .-main

.ident "GCC: (GNU) 4.1.2 (Ubuntu 4.1.2-0ubuntu4)"

.section .note.GNU-stack,"",@progbits

原因:puts()函数的作用与语句printf("%s\n",s);的作用形同。gcc可能对其进行了优化。

更多相关推荐:
关于高新技术企业认定网络申报工作有关事项说明的函

关于高新技术企业认定网络申报工作有关事项说明的函发布机构浙江省科技厅发布时间20xx0711各地方高企认定管理办公室各有关企业高新技术企业认定管理工作网经过几年的运行已经基本定型和成熟为了提高企业网络申报工作效...

关于统一社保参保证明格式的函

关于统一社保参保证明格式的函各有关单位我市多个部门在办理各类手续过程中需要审核验证社保参保证明材料为此从20xx年4月起我局将统一向我市各参保人提供一页A4纸格式的社保参保证明专门作为各相关职能部门审核验证申请...

关于工程总承包市场准入问题说明的函

关于工程总承包市场准入问题说明的函状态有效发布日期20xx0713生效日期20xx0713发布部门建设部发布文号建市函20xx161号江苏省建设厅上海市建委在国务院关于取消第一批行政审批项目的决定国发20xx2...

关于通知XXX接走左文华父母书面说明的函

关于通知XXX接走XX书面说明的函XX同志自20xx年2月X日起你们将XX父母送至我厂直至今日两位老人已在厂内留宿两晚我厂领导考虑到两位是高龄老人所以一方面尽心尽力的照顾归劝不敢有一丝怠慢同时也多次电话联系XX...

关于回复真伪协查函的情况说明

关于收集公司药品不良反应的通知为便于企业分析产品临床使用安全情况根据药品不良反应报告和监测管理办法卫生部第81号令和公司药品不良反应监测和报告制度要求现将有关事项通知如下公司销售人员应注意收集公司产品在市场上的...

关于油库码头情况说明的函

关于油库码头情况说明的函尊敬的海事局贵局停止对我公司码头报港审批工作后公司立即组织人员开会研究展开整改工作现将具体整改落实情况并油库及码头的情况向贵局做以下汇报说明一关于贵局提出的码头硬件设施不完善及码头管线不...

Peioen常见公文函、请示、报告、通知、规定的公文格式与范文

秋风清秋月明落叶聚还散寒鸦栖复惊常见公文函请示报告通知规定的公文格式与范文常见公文函请示报告通知规定的公文格式与范文公文写作常见公文函请示报告通知规定的公文格式与范文公文格式函请示报告通知规定的公文格式之一函的...

检索报告格式说明及范文

文献检索图书检索报告级专业班学号姓名说明利用所学的文献信息检索知识和检索方法按照规定的课题从多方面广泛收集有关资料并完成该课题的综合检索报告一检索系统选择要求1超星数字图书馆20分2徐州地区高校教学联合体文献资...

毕业设计说明书范文格式

河北联合大学轻工学院QINGGONGCOLLEGEHEBEIUNITEDUNIVERSITY毕业设计说明书设计论文题目单击此处键入论文中文题名单击此处继续键入副题名或删除此提示学生姓名单击此处键入学号单击此处键...

论文撰写格式范例说明

研究生学位论文撰写格式范例说明为简约描述我校研究生学位论文撰写格式规范有利于研究生撰写学位论文格式的规范和统一研究生院将中英文摘要目录正文此处指从绪论到结论致谢参考文献攻博硕期间取得的成果做了一个示范并对一些易...

研究生学位论文撰写格式范例说明

研究生学位论文撰写格式范例说明为简约描述我校研究生学位论文撰写格式规范详见下页有利于研究生撰写学位论文格式的规范和统一研究生院将中英文摘要目录正文此处指从绪论到结论致谢参考文献攻博硕期间取得的成果做了一个示范并...

检索报告格式说明及范文

信息检索综合检索报告级专业班学号姓名说明利用所学的文献信息检索知识和检索方法按照规定的课题从多方面广泛收集有关资料并完成该课题的综合检索报告一检索系统选择要求1中文数据库CNKI系列资源库维普科技期刊数据库万方...

说明的格式(31篇)