C 语言

关注公众号 jb51net

关闭
首页 > 软件编程 > C 语言 > c++宏

C++中的宏是什么意思

作者:光泽雨

C++里的宏其实就是编译器在正式干活前,先帮你做的一次“全局查找替换”,它不是真正的函数或变量,这篇文章主要介绍了c++中的宏是什么,需要的朋友可以参考下

C++ 里的宏其实就是编译器在正式干活前,先帮你做的一次“全局查找替换”,它不是真正的函数或变量 。‌ 这只是预先定好的一段文本规则,用来简化代码或定义常量,在代码编译前就会完成替换 。‌‌百科‌

🛠 宏到底是怎么工作的

 主要有哪两种用法

 用的时候注意啥

宏是 C/C++ 预处理器提供的一种文本替换机制。预处理器在编译器真正编译代码之前,会对源文件进行预处理,其中就包括展开宏。宏本身不是 C++ 语言的一部分,而是一个独立的预处理指令。

基本定义

宏通过 #define 指令定义,通常有两种形式:

1对象式宏(无参宏)

#define PI 3.14159
#define MAX_SIZE 1024

在代码中出现的 PI 和 MAX_SIZE 会被直接替换成对应的文本。

2. 函数式宏(带参宏)

#define SQUARE(x) ((x)*(x))
#define MAX(a,b) ((a) > (b) ? (a) : (b))

工作原理

预处理阶段,宏名称会被其定义体原封不动地替换进去。例如:

int a = SQUARE(5);
// 预处理后变为: int a = ((5)*(5));

QT4版本的信号和槽写法

//连接有参数的信号和槽

//优点:参数直观。写法简单

//缺点:编译器不检测参数类型

void(Teacher::*teacherSingnal)()=&Teacher::hungry;

void(Student::* studentSlot)(QString)=&Student::treat;

connect(this->zt,SIGNAL(hungry()),this->st,SLOT(treat(QString)));

classISOver();

//信号和槽扩展

//信号连接信号

2、一个信号可以连接多个槽函数

3、多个信号可以连接同一个槽函数

4、信号和槽的参数类型,必须一一对应

5、信号的参数个数可以多于槽函数,反之不可以,相同个数的参数类型也要一一对应。

6、可以利用disconnect 断开信号槽的连接。

到此这篇关于C++中的宏是什么意思的文章就介绍到这了,更多相关c++宏内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文