栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

虚幻编程准备之-宏定义的语法

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

虚幻编程准备之-宏定义的语法

虚幻编程要面对的很大一部分代码都是用宏来书写的,包括整个虚幻的反射机制也是由宏来支撑的。

这里对宏来做一个简单的用法总结,主要还是针对C++和C的宏语法。

文章目录
    • 最简形式的宏
      • 定义
      • 使用
      • 输出
    • 带参数的宏(单参数)
      • 定义
      • 使用
      • 输出
    • 带参数的宏(多参数)
      • 定义
      • 使用
      • 输出
    • 换行
      • 定义
      • 使用
      • 输出
    • #号的使用
      • 定义
      • 使用
      • 输出
    • ##号的使用
      • 定义
      • 使用
      • 输出
    • 内置的宏
      • 列举
      • 使用
      • 输出

最简形式的宏 定义
#define pi 3.14
使用
float funcSampleMacro()
{
	return pi * 10;
}
输出
31.4
带参数的宏(单参数) 定义
#define func(x) (x * 2)
使用
float funcParamerizedMacro()
{
	return func(3.14);
}
输出
40
带参数的宏(多参数) 定义
#define TEST(...) t(##__VA_ARGS__)

int t(float a, float b, float c)
{
	return a + b + c;
}
使用
int t(float a, float b, float c)
{
	return a + b + c;
}

int t(float a, float b)
{
	return a + b;
}

float funcMultiParaMacro()
{
	return TEST(1, 2, 3);
}

//float funcMultiParaMacro()
//{
//	return TEST(1, 2);
//}
输出
6

3
换行 定义
#define Wrap(functionName) float functionName()
{
	return 3.14;
}
使用
Wrap(unnamed)
float funcWrapMacro()
{
	return unnamed();
}
输出
3.14
#号的使用

# 用来转化字符串

定义
#define TOSTRING(x) #x
使用
string funcToStringMacro()
{
	return TOSTRING(hello world);
}
输出
hello world
##号的使用

## 用来拼接

定义
#define COMBINE(x,y) x##y
使用
string funcCombineMacro()
{
	return COMBINE(func, ToStringMacro());
}
输出
hello world
内置的宏 列举
__FILE__
__LINE__
__DATE__
__TIME__
__FUNCTION__
使用
void funcBuildInMacro()
{
	cout << __FILE__ << endl;
	cout << __LINE__ << endl;
	cout << __DATE__ << endl;
	cout << __TIME__ << endl;
	cout << __FUNCTION__ << endl;
}
输出
E:ProjectCppResearchLocCppResearchMacroResearchCommen.h
66
Apr  7 2022
16:36:28
funcBuildInMacro
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/862139.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号