大家好我是CodeShark
今天分享宏的用法
主要功能:
常量
宏函数
代码块
格式: #define 宏名 替换体
一、定义宏常量
在程序中遇到了宏名就会自动替换成后面的值
例如 #define SIZE 32
int arr[SIZE]; // int arr[32]
遇到了SIZE 就会自动把SIZE替换成32
#include <iostream>
#define SIZE 32
int main(void)
{
int arr[SIZE];
for (int i = 0; i < SIZE;++i) // 循环32次因为SIZE 被替换成32
{
arr[i] = i+1;
}
for (int i = 0; i < SIZE; ++i)
{
std::cout << arr[i] << " ";
}
}
这样做有一个好处,就是当程序代码量比较多的时候,修改常量值不用一个一个去重写,只需要把宏定义修改一下,其他的都全部修改了。
二、宏函数
#define MAX(a,b) a > b ? a : b
红的名字那里有参数,后面是要执行的表达式
实际上也是把实现写在代码里。只不过把a和b替换了
嗯
#include <iostream>
#define MAX(a,b) a > b ? a : b
int main(void)
{
int a = 32;
int b = 64;
int c = MAX(a, b);
std::cout << c;
}
宏函数在项目中使用得很多
三、代码块
#define START_MP3 mciSendString(L"play bf.mp3", 0, 0, 0);\
std::cout << "mp3 start ";
直接替换
#include <iostream>
#include <Windows.h>
#include <mmsystem.h>
#pragma comment(lib,"WINMM.LIB")
#define START_MP3 mciSendString(L"play bf.mp3", 0, 0, 0);
int main(void)
{
START_MP3
}