最近参加了好多场c/c++笔试,感觉题型就那些,今天把这些题型总结总结供大家参考
1.动态库和静态库的区别
- 静态连接库就是把(lib)文件中用到的函数代码直接链接进目标程序,程序运行的时候不再需要其它的库文件;动态链接库就是把调用的函数所在文件模块(DLL)和调用函数在文件中的位置等信息链接进目标程序,程序运行的时候再从DLL中寻找相应函数代码,因此需要相应DLL文件的支持。
- 如果采用静态链接库,则无论你愿不愿意,(.lib)中的指令都全部被直接包含在最终生成的exe文件中了。但是若使用dll(动态库),该dll不必包含在最终exe文件中,exe文件执行时可以“动态”地引用和卸载这个与exe独立的dll文件。
- 静态链接库中不能再包含其他的动态链接库或者静态库,而在动态链接库中还可以再包含其他的动态或静态链接库。
自己总结:静态链接库是指,将函数(当然不一定只有函数,也可以类等其他)的声明和实现都放在lib文件中,目标程序使用函数时,需要将lib文件链接进去,程序运行后不再需要其它的库文件;而动态库则是把声明放在lib文件中,而把实现部分放在DLL文件中,目标程序使用函数时,需要将lib和DLL文件都链接进程序中,程序运行后可以动态地引用和卸载DLL文件中的函数,DLL不会包含在最终的exe文件中。
参考资料:http://blog.csdn.net/gamecreating/article/details/5504152
2.STL的组件的使用
- 什么是stl,其包含了那些组件,这些组件的作用分别是什么?
参考资料:http://blog.csdn.net/huayehanshan/article/details/3864191 - 常用的容器组件:vector、list、set、map等的用法。
参考资料:Set和map的使用:http://www.cnblogs.com/zhangchaoyang/articles/2026096.html
3.内联函数和宏
- 内联函数是指用inline关键字修饰的函数。在类内定义的函数被默认成内联函数。
- 内联函数从源代码层看,有函数的结构,而在编译后,却不具备函数的性质。内联函数不是在调用时发生控制转移,而是在编译时将函数体嵌入在每一个调用处。编译时,类似宏替换,使用函数体替换调用处的函数名。执行效率较普通函数要高。
- 内联函数中不能出现循环语句,函数的实现代码不能太长,一般不超过5句。
参考资料:http://baike.baidu.com/link?url=8cdQyERD-vrz0yWiynPpyIW0JKP9LE4l6WBYJIGRhTLUb82Jg-PXsRT7GEjZMlVSIH3HsCx7dnHZap7sdfgVza
4.二叉树相关的内容
二叉树的定义
二叉树的遍历方式