c++中内联函数和宏函数的区别
摘要:一. 区别: 是不是函数: 宏定义不是函数,但是使用起来像函数。预处理器用复制宏代码的方式代替函数的调用,省去了函数压栈退栈过程,提高了效率; 内联函数本质上是一个函数,内联函数一般用于函数体的代码比较简单的函数,不能包含复杂的控制语句,while、switch,并且内联函数本身不能直接调用自身。
阅读全文
posted @
2023-02-27 17:03
斗战胜佛美猴王
阅读(138)
推荐(0) 编辑
c++函数指针
摘要:一.定义介绍 1.1 定义 如果在程序中定义了一个函数,那么在编译时系统就会为这个函数代码分配一段存储空间,这段存储空间的首地址称为这个函数的地址。而且函数名表示的就是这个地址。既然是地址我们就可以定义一个指针变量来存放,这个指针变量就叫作函数指针变量,简称函数指针。所以,可以理解为每一个函数都占用
阅读全文
posted @
2023-02-27 16:12
斗战胜佛美猴王
阅读(205)
推荐(0) 编辑
Qt中跨进程Socket通信以及socket跨线程通信
摘要:一 QTcpServer 创建流程 创建套接字服务器 QTcpServer 对象, 通过 QTcpServer 对象设置监听,即:QTcpServer::listen() 基于 QTcpServer::newConnection() 信号检测是否有新的客户端连接 如果有新的客户端连接调用*QTcpS
阅读全文
posted @
2023-02-14 14:57
斗战胜佛美猴王
阅读(2097)
推荐(1) 编辑
Qt多线程编程之QThread
摘要:背景引言[ GUI主线程 +子线程] 跟C++11中很像的是,Qt中使用QThread来管理线程,一个QThread对象管理一个线程,在使用上有很多跟C++11中相似的地方,但更多的是Qt中独有的内容。另外,QThread对象也有消息循环exec()函数,即每个线程都有一个消息循环,用来处理自己这个
阅读全文
posted @
2023-02-09 17:41
斗战胜佛美猴王
阅读(1114)
推荐(0) 编辑
Qt多线程编程之QThreadPool 和 QRunnable使用
摘要:说到线程通常会想到QThread,但其实Qt中创建线程的方式有多种,这里主要介绍其中一种QRunnable,QRunnable和QThread用法有些不同,并且使用场景也有区别。要介绍QRunnable的用法、使用场景以及注意事项,首先还要先来看看QThreadPool,因为QRunnable任务需
阅读全文
posted @
2023-02-09 13:21
斗战胜佛美猴王
阅读(2991)
推荐(1) 编辑
C++11之线程库
摘要:在 C++11 之前,涉及到多线程问题,都是和平台相关的,比如 Windows 和 Linux 下各有自己的接口,这使得代码的可移植性比较差。C++11 中最重要的特性就是对线程进行支持了,并且可以跨平台,这使得 C++ 在并行编程时不需要依赖第三方库。C++11 在原子操作中还引入了原子类的概念。
阅读全文
posted @
2023-02-06 18:23
斗战胜佛美猴王
阅读(299)
推荐(0) 编辑
C++之智能指针
摘要:一、为什么需要智能指针? 如果在 div() 输入的 b == 0,那么就会抛出一个异常,被 main() 捕获,但是在 Func() 中 new 申请的资源就会因没释放而发生泄露问题,这是一种异常安全问题。 #include <iostream> using namespace std; int
阅读全文
posted @
2023-02-02 18:04
斗战胜佛美猴王
阅读(287)
推荐(0) 编辑
详解 C++ 左值、右值、左值引用以及右值引用
摘要:一、左值和右值 1.1左值 [可以取地址的对象就是左值] 左值是一个表示数据的表达式,比如:变量名、解引用的指针变量。一般地,我们可以获取它的地址和对它赋值,但被 const 修饰后的左值,不能给它赋值,但是仍然可以取它的地址。总体而言,可以取地址的对象就是左值。 // 以下的a、p、*p、b都是左
阅读全文
posted @
2023-02-02 10:04
斗战胜佛美猴王
阅读(9831)
推荐(15) 编辑