- 1、本文档共68页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * 超过2G的文件,有符合int类型溢出 * * * * * * * * * * * * * * * * * #include 相当于复制黏贴 * * * * * * * * * * * * * * * * * * * * * * * * * 减少了函数堆栈的开辟释放 * * Linux gettimeofday 三、常用技巧 if((fp=fopen(“readme.txt,rb)==NULL) { printf(\nerror on open c:\\hzk16 file!); exit(1); } 若要向一个已存在的文件追加新的信息,只能用“a”方式打开文件。但此时该文件必须是存在的,否则将会出错。 在打开一个文件时,如果出错,fopen将返回一个空指针值NULL。在程序中可以用这一信息来判别是否完成打开文件的工作,并作相应的处理。 三、常用技巧 文件的读写 对文件的读和写是最常用的文件操作。在C语言中提供了多种文件读写的函数: 字符读写函数 :fgetc和fputc 字符串读写函数:fgets和fputs 数据块读写函数:fread和fwrite 格式化读写函数:fscanf和fprinf行操作。 三、常用技巧 文件的读写 在文件内部有一个位置指针,用来指向文件的当前读写字节。在文件打开时,该指针总是指向文件的第一个字节。使用fgetc 函数后,该位置指针将向后移动一个字节。应注意文件指针和文件内部的位置指针不是一回事。文件指针是指向整个文件的,文件内部的位置指针用以指示文件内部的当前读写位置,每读写一次,该指针系统自动向后移动。 三、常用技巧 计算文件长度的程序示例 long filesize(FILE *stream) { long curpos, length; curpos = ftell(stream); fseek(stream, 0L, SEEK_END); length = ftell(stream); fseek(stream, curpos, SEEK_SET); return length; } 进行二进制文件读写时,打开方式后面加“b” 四、调试 编程出现error时,从第一个error处开始解决错误,可能是很小的书写错误引起的。 warning也需要关注,有时候会导致程序运行错误发生。 程序出现BUG时,单步跟踪,查看变量,查看内存,查看栈调用,可以边编辑边跟踪。 加入合适的断点,使用条件断点。 程序调试结束后需要查找内存泄露,规范代码书写。 使用assert,只有条件满足才继续向下执行,在release下不会编译该语句。 程序编写完成不一定是完全正确的,需要进行测试并进行跟踪调试。 四、调试 4.1 条件断点 我们在调试的时候希望程序在某个断点处只有在满足一定的条件下中断,在不满足条件的时候正常运行,可以为程序调试带来极大的便利。 示例 四、调试 4.2 内存泄漏查找 养成好的代码写作规范,掌握内存管理概念,减少不规范代码内存泄漏可能性。 是否内存泄露: 运行可执行文件,使用任务管理器查看内存占用情况是否一直增加。比较简单但是显示不一定精确。 使用NumegaBounderChecker软件查找,程序中加入exit(0)强制中断,Debug至该代码行程序异常中断时查看内存泄露报告。 示例 四、调试 4.3 watch 跟踪调试时多使用watch窗口,在watch窗口内可以进行有限运算,注意watch 运算带来的影响。 示例 四、调试 4.4 C 程序优化 首先要确定优化目标,然后寻找优化方法。查找程序运行瓶颈,使用Intel Vtune查看各部分运行时间,一步步进行优化。现在CPU,GPU发展方向都是多核,并行计算越来越方便,为优化提供了更多解决方案。 任务级并行,使用多线程发挥多核优势。 指令级并行,使用MMX,SSE,SSE2等指令集。 参看Vtune使用指南 五、示例 5.1 软件设计 算法思想,思路清楚,注意细节 质量控制,代码高效,风格良好 测试调试,测试全面,调试认真 软件设计过程关键部分: 在编写软件程序之前,首先要明确你要解决的问题,软件只是思想的实现,不能通过编程来获得思想。所以在编写之前就需要对问题有透彻的理解,对解决问题的方法有清晰的思路,要考虑到可能遇到的所有问题,同时要考虑到软件的可靠性稳定性等。 五、示例 5.1 软件设计 在编写软件程序之前,首先要明确你要解决的问题,软件只是思想的实现,不能通过编程来获得思想。所以在编写之前就需要对问题有透彻的理解,对解决问题的方法有清晰的思路,要考虑到可能遇到的所有问题,同时要考虑到软件的可靠性稳定性等。 在代码编写的时候,注意代码编写规范,编
您可能关注的文档
- 《化学(医药卫生类)》课件-第四章-探究化学反应的基本规律(高教版).ppt
- 《机电设备和管理技术》课程标准1.docx
- 《鸡兔同笼》小学四年级说课讲稿.ppt
- 《记一次拔河比赛》作文教学.ppt
- 《纪律在我心中》主题班会课件---副本.ppt
- 《讲宪法学宪法》主题班会课件.ppt
- 2018年河北省唐山市路北区九年级第一次模拟检测.docx
- 2018年河北省中考物理考试试卷.doc
- 2018年河南省商丘市中考数学一模考试试卷.doc
- 2018年湖北省咸宁市中考数学考试试卷(解析版).doc
- 中国国家标准 GB/T 45133-2025气体分析 混合气体组成的测定 基于单点和两点校准的比较法.pdf
- 《GB/T 45133-2025气体分析 混合气体组成的测定 基于单点和两点校准的比较法》.pdf
- 中国国家标准 GB/T 43707-2025科学数据溯源元数据.pdf
- 《GB/T 43707-2025科学数据溯源元数据》.pdf
- GB/T 43707-2025科学数据溯源元数据.pdf
- GB/T 43710-2025科学数据安全审计要求.pdf
- 中国国家标准 GB/T 43710-2025科学数据安全审计要求.pdf
- 《GB/T 43710-2025科学数据安全审计要求》.pdf
- 中国国家标准 GB/T 45222-2025食品安全事故应急演练要求.pdf
- GB/T 45222-2025食品安全事故应急演练要求.pdf
文档评论(0)