欢迎来到天天文库
浏览记录
ID:26688319
大小:918.35 KB
页数:27页
时间:2018-11-28
《大规模集成电路设计应用与实践》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、大规模集成电路设计应用与实践代码阅读与实践Lecture3主讲人:胡亚斌E-mail:yabin.hwu@gmail.com系列课程之第二次课的回顾关心代码阅读全周期(四个步骤)内发生的事源码,预编译,编译,汇编,链接,运行,修改源码……了解目标文件,readelf,objdump等工具的使用深入理解编译、链接了解程序员眼中的内存模型:堆与栈深入理解HelloWorld程序的全生命周期2代码阅读有哪些事3阅读静态源代码,勾勒代码执行流和物理组织图和逻辑组织图。读对程序进行编译,汇编,链接等操作。阅读其代码低层形态。译运
2、行编译得到二进制文件,观察代码运行态。结果与在“读”阶段得到的理解进行对比,剖析。行对代码进行修改,对修改后的代码行为进行预测。改4基本编程元素课程内容1函数与全局变量2循环结构3goto语句4字符及布尔型表达式5do循环与整型表达式6基本编程元素5一个完整的程序见本节课实验一原型代码可以参考教材随书关盘etbsdsrcbinechoecho.c实验演示,理解main函数参数argc与argv6头文件用于函数、变量的声明。用#include格式来引用标准库的头文件(编译器将从标准库目录
3、开始搜索)。用#include“filename.h”格式来引用非标准库的头文件(编译器将从用户工作目录开始搜索)。规则和建议必须做头文件保护。在头文件中,尽课程使用前向声明,而不引用其他头文件,以防止头文件引用循环嵌套。建议头文件中只存放“声明”而不存放“定义”。7实例:头文件8/**CopyRight@YabinHu,CUG.2010,10,29.*thisisademoforheaderfile.*/#ifndefMY_INCLUDE_FILE_H//防止my_include.h被重复引用#defineMY_IN
4、CLUDE_FILE_H#include//引用标准库的头文件…#include“anotherheaderbyme.h”//引用非标准库的头文件…voidFunction1(…);//全局函数声明…classBox//类结构声明{…};#endif函数与全局变量9VS2008类视图10基本概念作用域scope生命周期lifecycle11关注代码中的符号或名字全局函数与全局变量具有外部链接(externallinkage)的符号在OO编程中,定义在任何类之外规则:在检查代码时,确保所有只用于单一文件的
5、变量都声明为static的。12对变量名的分析关注修饰符static(文件作用域,程序生命周期)extern(全局作用域,程序生命周期)实验演示13对函数的分析了解函数功用的方法通过函数名猜阅读函数定义之前的注释猜测参数的意义观察函数被调用的方式和返回值阅读函数体代码查阅外部文档14循环结构15while循环16//打开一个文件得到其文件描述符File*fp=fopen(“a.txt”);while((c=getc(pf))!=EOF){putc(c,active);}//这个循环执行了多少次迭代char*p;whil
6、e('0'<=*p&&*p<='9')do-while的特殊用法17#defineABORT_PARSEdo{global_command=0;yyerrok;if(!symtab_context.empty()){symbol_table::set_scope(symtab_context.top());symtab_context.pop();}if(interactive
7、
8、forced_interactive)YYACCEPT;elseYYABORT;}while(0)for循环次
9、数18for(inti=0;i<=nargs;i++)for(inti=0;i0;i--)for(dp=readdir(dd));dp!=NULL;dp=readdir(dd))下列for语句各执行多少次循环for循环与效率19for(i=0;i10、Something();}else{for(i=0;i
10、Something();}else{for(i=0;i
此文档下载收益归作者所有