C/C++宏定义使用

大家好我是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


}

猜你喜欢

转载自blog.csdn.net/qq_46530073/article/details/124475712