当前位置: 首页 > wzjs >正文

joomla网站模板短视频seo优化排名

joomla网站模板,短视频seo优化排名,做自己的网站的一般步骤,哪些软件可以做网站文章目录26. 说说malloc/free 和 new/delete区别27. 在C程序中调用被C语言修饰的函数,为什么要加extern “C”28. 什么是内存泄漏?什么是野指针?什么是内存越界?如何避免?29. 内联函数有什么优点?内联函数和…

文章目录

  • 26. 说说malloc/free 和 new/delete区别
  • 27. 在C++程序中调用被C语言修饰的函数,为什么要加extern “C”
  • 28. 什么是内存泄漏?什么是野指针?什么是内存越界?如何避免?
  • 29. 内联函数有什么优点?内联函数和宏定义的区别
    • 内联函数的优点
    • 内联函数和宏定义的区别
    • 内联函数
    • 宏定义
    • 内联函数的类型检查和作用域
    • 宏定义的类型问题
  • 30. 什么时候要用虚析构函数
    • 没有虚析构函数的情况
    • 使用虚析构函数的情况

26. 说说malloc/free 和 new/delete区别

至少要知道标注绿色的这四项
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

27. 在C++程序中调用被C语言修饰的函数,为什么要加extern “C”

在这里插入图片描述
示例:
假设你有一个C函数库,其中有一个函数void foo();。在C中,你可以直接在头文件中声明这个函数:

// C头文件:mylib.h  
void foo();

但是,如果你在C++程序中使用这个头文件,你需要告诉C++编译器这个函数是C风格的:

// C++源文件:main.cpp  
extern "C" {  
#include "mylib.h"  
}  int main() {  foo();  return 0;  
}

或者,你也可以在C头文件中使用extern “C”:

// 修改后的C头文件:mylib.h(兼容C++)  
#ifdef __cplusplus  
extern "C" {  
#endif  void foo();  #ifdef __cplusplus  
}  
#endif

这样,无论你的C++程序如何包含这个头文件,它都会知道foo()是一个C风格的函数。
在这里插入图片描述

28. 什么是内存泄漏?什么是野指针?什么是内存越界?如何避免?

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

裸指针(Raw Pointer)是 C++ 中最基础的指针类型,它直接指向内存地址,不提供任何智能功能或内存管理功能。裸指针是与 智能指针(如 std::unique_ptr、std::shared_ptr 等)相对的概念。

  1. 裸指针的定义
    裸指针就是没有附加任何智能功能的普通指针,它只是一个指向内存的地址,不会自动管理资源的生命周期。裸指针的最常见用途是指向动态分配的内存或者数组中的元素。
int* p = nullptr;  // 裸指针,初始化为空指针
  1. 裸指针的特点
  • 直接指向内存:裸指针直接存储对象的地址或内存位置。
  • 没有内存管理:裸指针不负责管理其所指向的内存(例如,自动释放内存)。这意味着程序员需要手动管理内存的分配和释放。
  • 不提供安全检查:裸指针不会检查访问无效内存或空指针的行为,导致程序容易发生悬挂指针、空指针解引用等错误。

悬挂指针:如果裸指针指向的内存已经被释放(例如,delete 后),但是指针仍然指向这个已释放的地址,就会造成 悬挂指针,这种指针是非法的,解引用它会导致未定义行为。

野指针和悬挂指针是指向无效内存地址的指针,通常它们是可以互换使用的术语,尤其在日常的讨论中。
在这里插入图片描述

29. 内联函数有什么优点?内联函数和宏定义的区别

内联函数(inline function)是C++中的一种优化机制,建议编译器在调用该函数时,将函数代码直接插入到调用点,而不是进行一般的函数调用。这样可以减少函数调用的开销,提高程序的执行效率

内联函数的优点和与宏定义的区别如下:

内联函数的优点

  1. 消除函数调用开销:内联函数通过将函数代码直接插入到调用点,避免了普通函数调用时的参数压栈、跳转和返回等开销。
  2. 增强代码可读性和可维护性:相比宏定义,内联函数具有函数的特性,支持类型检查和作用域规则,使代码更加安全和可读。
  3. 允许调试:内联函数可以在调试过程中正确地设置断点和查看堆栈信息,而宏定义展开的代码则无法直接调试。
  4. 支持多态性:内联函数可以是成员函数,支持类的继承和多态特性,而宏定义则不能。

内联函数和宏定义的区别

在这里插入图片描述

内联函数

#include <iostream>inline int add(int a, int b) {return a + b;
}int main() {std::cout << "Sum: " << add(3, 4) << std::endl; // 输出: Sum: 7return 0;
}

宏定义

#include <iostream>#define ADD(a, b) ((a) + (b))int main() {std::cout << "Sum: " << ADD(3, 4) << std::endl; // 输出: Sum: 7return 0;
}

注意:这里有两个额外的括号。这些括号在某些情况下是必要的,以确保宏的正确扩展和计算。否则,例如:你使用了像ADD(i++, j)这样的表达式,那么结果可能会与预期的不同。使用括号可以避免这种“运算符优先级”的问题

内联函数的类型检查和作用域

#include <iostream>inline int square(int x) {return x * x;
}int main() {std::cout << "Square: " << square(5) << std::endl; // 输出: Square: 25// std::cout << "Square: " << square("5") << std::endl; // 编译错误:类型不匹配return 0;
}

宏定义的类型问题

#include <iostream>#define SQUARE(x) ((x) * (x))int main() {std::cout << "Square: " << SQUARE(5) << std::endl; // 输出: Square: 25std::cout << "Square: " << SQUARE("5") << std::endl; // 运行时错误,文本替换后类型不匹配return 0;
}

30. 什么时候要用虚析构函数

在这里插入图片描述

没有虚析构函数的情况

#include <iostream>class Base {
public:Base() { std::cout << "Base constructor\n"; }~Base() { std::cout << "Base destructor\n"; }
};class Derived : public Base {
public:Derived() { std::cout << "Derived constructor\n"; }~Derived() { std::cout << "Derived destructor\n"; }
};int main() {Base* obj = new Derived();delete obj;  // 只调用了Base的析构函数,未调用Derived的析构函数return 0;
}

使用虚析构函数的情况

#include <iostream>class Base {
public:Base() { std::cout << "Base constructor\n"; }virtual ~Base() { std::cout << "Base destructor\n"; }
};class Derived : public Base {
public:Derived() { std::cout << "Derived constructor\n"; }~Derived() { std::cout << "Derived destructor\n"; }
};int main() {Base* obj = new Derived();delete obj;  // 调用了Base和Derived的析构函数return 0;
}

在这里插入图片描述

之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

http://www.dtcms.com/wzjs/154666.html

相关文章:

  • 佛山技术支持 骏域网站建设百度seo关键词优化电话
  • 同一个网站可以同时做竞价和优化上海网络推广营销策划方案
  • 外包网站建设网站的营销策略
  • 网站开发的背景与环境云南今日头条新闻
  • 做网站租服务器吗博客推广的方法与技巧
  • 为公司设计一个网站chrome浏览器官网入口
  • 做网站宣传费用记什么科目手机如何创建网站
  • 网站做博彩客服怎么样中央广播电视总台
  • 三维立体网站建设民宿平台搜索量上涨
  • 商城网站源码下载网站策划书模板
  • 职场社交网站怎么做河南整站百度快照优化
  • 网站前台怎么做企业宣传网站
  • 冬夜主题wordpressseo是搜索引擎优化吗
  • 网站技术开发文档模板付费推广方式有哪些
  • 个人网站模板响应式营销网络是什么意思
  • 用C语言做网站登录界面世界互联网峰会
  • 阿里云虚拟主机怎么建立网站百度小说排行榜前十名
  • dreamweaver 电商网站的制作网站关键词排名快速提升
  • 哪些企业网站做的好seo 页面链接优化
  • 电子商务网站建设方案案例合肥网站优化技术
  • 电商网站建设与开发课程试卷怎么在百度上推广自己
  • 网站建设增城东莞做网站公司电话
  • 税务局网站模板好看的seo网站
  • 设计灵感优化大师怎么删除学生
  • 郑州专业个人网站建设产品推广计划方案模板
  • 手机网站欣赏中美关系最新消息
  • sae wordpress伪静态seo关键词挖掘工具
  • 厦门做网站优化seo公司 彼亿营销
  • 毕业设计可以做网站不汽车网络营销推广方案
  • 网站设计毕业论文进度表范文找做网站的公司