C/C++
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C/C++,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1573字,纯文字阅读大概需要3分钟。
内容图文
三十一、对于一维数组来说,数组作为函数参数传递,实际上传递了一个指向数组的指针,在C编译器中,当数组名作为函数参数时,在函数体内数组名自动退化为指针。此时调用函数时,相当于传址而不是传值,会改变数组元素的值。
三十二、
a) union是一种特殊的类,也是一种构造类型的数据结构。在一个union内可以定义多种不同的数据类型,这些数据共享同一段内存,以达到节省空间的目的。故data内的每个成员起始地址都相同。
b) 在任意时刻,union中只能有一个数据成员可以有值。当给联和中某个成员赋值之后,该联合中的其他成员就变成了未定义状态。
c) union长度取决于其中定义的最长数据成员。故变量data所占内存字节数与成员c所占字节数相等。
三十三、 函数
inline是C++关键字,在函数声明或定义中,函数返回类型前加上关键字inline,即可以把函数指定为内联函数。这样可以解决一些频繁调用的函数大量消耗栈空间(栈内存)的问题。关键字inline必须与函数定义放在一起才能使函数成为内联函数,仅仅将inline放在函数声明前面不起任何作用。inline是一种“用于实现”的关键字,而不是一种“用于声明”的关键字。
inline的优劣:
优点:增加函数体积,exe太大,占用CPU资源,可导致cache装不下(减小了cache的命中),不方便调试,debug下一般不内联,每次修改会重新编译头文件增加编译时间。注意:inline只是一个请求,编译器有权利拒绝。有7种情况下都会拒绝,虚调用,体积过大,有递归,可变数目参数,通过函数指针调用,调用者异常类型不同,declspec宏等。
forceinline字面上意思是强制内联,一般可能只是对代码体积不做限制,但是对于上面的情况仍然不会内联,如果没有内联,它会返回一个警告。构造函数析构函数不建议内联,里面可能会有编译器优化后添加的内容,比如初始化列表里面的东西。
三十四、关系运算符>逻辑运算符(特别低)
内容总结
以上是互联网集市为您收集整理的C/C++全部内容,希望文章能够帮你解决C/C++所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。