(原创)C中的scanf陷阱

(原创)C中的scanf陷阱 最近一直在看AndrewKoening写的书籍,可以说学习C/C++或者从事这方面的开发的人员非常值得一看的书籍,这里我推荐看看《C陷阱与缺陷》与《C/C++沉思录》。 这里先来看看《C陷阱与缺陷》一段代码。 #include<stdio.h> intmain() { inti; charc; //printf("iaddress:%ld/n",&i); //printf("caddress:%ld/n",&c); for(i=0;i<5;i++) { scanf("%d",&c); printf("%d",i); ...

阅读全文 141 ℃

(原创)优化你的GCC

(原创)优化你的GCC GCC具有优化代码的功能,代码的优化是一项比较复杂的工作,它可归为:源代码级优化、速度与空间的权衡、执行代码的调度。但一般调试的时候推荐不使用优化,而是在你的程序的功能模块完成后,因为代码经过优化后,原先在源码程序中声明和使用的变量很可能不再使用,控制流也可能会突然跳转到意外的地方,循环语句也有可能因为循环展开而变得到处都有,所以这些都将使调试工作异常艰难。所以如果将要将众多模块整合成一个完整的软件的时候,可以考虑优化一下你的GCC,使得你的软件运行更快。 GCC提供了下列优化选项: -O0:默认不优化(若要生成调试信息,最好不优化) -O1:简单优化,不进行速度与空间的...

阅读全文 41 ℃

(原创)说说C++中的malloc与new

(原创)说说C++中的malloc与new  很多人都知道malloc与new都是用来申请空间用的,开辟空间来源于堆中。但是在C++中却很少用malloc去申请空间,为什么会这样?后面会有个很有说服力的例子,相信大家一看就能明白。C++程序的格局可分为4个区,注意是“格局”, 1、全局数据区2、代码区3、栈区4、堆区 其中全局变量,静态变量是属于全局数据区;所有的类和非成员函数的代码都存放在代码区;为成员函数运行而分配的局部变量的空间都在栈区,剩下的那些空间都属于堆区。 下面来写个简单的例子 #include classTest { public: Test() { cout<<"TheClass...

阅读全文 1832 ℃

Back to Top