- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件开发环境.ppt
软件开发环境 郝宗波 haozb3@163.com 1.1.1 关于数据大小的问题 struct stru1 { char c1; short s; char c2; int I; }; 请问stru1的大小(Size)是多少? 1.1.1 关于数据大小的问题(续) struct stru1 a;?printf(c1 %p, s %p, c2 %p, i %p\n,????????(unsigned int)(void*)a.c1 - (unsigned int)(void*)a,????????(unsigned int)(void*)a.s - (unsigned int)(void*)a,????????(unsigned int)(void*)a.c2 - (unsigned int)(void*)a,????????(unsigned int)(void*)a.i - (unsigned int)(void*)a); 运行 1.1.1 关于数据大小的问题(续) struct stru1 { char c1; char c2; short s; int I; }; 请问stru1的大小(Size)又是多少? 运行 int?a?=?0;?全局初始化区char?*p1;?全局未初始化区main(){??? int?b;?// 栈??? char?s[]?=?abc;?// 栈??? char?*p2;?// 栈??? char?*p3?=?123456;?// 123456\0在常量区,p3在栈上。??? static?int?c?=0;?// 全局(静态)初始化区??? p1?=?(char?*)malloc(10);??? p2?=?(char?*)malloc(20);??? // 分配得来得10和20字节的区域就在堆区。??? strcpy(p1,?123456);?// 123456\0放在常量区,编译器//可能会将它与p3所指向的123456优化成一个地方。}? 1.2 我们从这门课程中将学到什么? 1.4选择哪种语言? Compiling or interpreting? Compiling is quicker. Like Delphi and C/C++ interpreting is slower. Like VB. Compiling-interpreting: like Java , .net, and smalltalk. Just in time compiling make java more like a compiling language. 是否遗产系统需要某种语言? if the system existing is written in some language, we have to choose it. 1.5 关于 Debug Debug的能力是开发有效软件的重要能力。Debug的过程也是深入了解系统核心的过程,是为坚实的软件构架提供基础知识的过程,是训练设计思路的过程。 发散思维特别重要. 易用的好工具. 关于多线程调试,Logging是很重要的. 故事: 有时在需要时发现窗体Handle已经释放。 有时在需要对象时,发现该对象已经被释放且悬空. * * 1.1 几个小测试 良好的编程风格和坚实的基础知识是良好的软件设计的基础。只有了解底层的基础才能设计出高层次的抽象。以下是几个相关测试。 1.1.2 关于堆栈的问题 (1)Void loop(); Void addr(); Int main(){ addr(); loop(); } Long * p; Void loop(){ long i, j; j = 0; for (i = 0; i10;i++){ (*p)--; j++; printf(“%d\n”, i); } } void addr(){ long k; k = 0; p = k; } 运行 (2) int main(){ int i; int a[10]
文档评论(0)