虚幻编程要面对的很大一部分代码都是用宏来书写的,包括整个虚幻的反射机制也是由宏来支撑的。
这里对宏来做一个简单的用法总结,主要还是针对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



