我将有许多具有相同签名(返回参数和函数参数)的函数,并且这些参数很长并且可能随时间而变化。但是我可能有数百个这样的函数,我认为使用#define
宏来说明参数应该是什么方便,这样我只需要在一个地方更改它们,如下所示:
#define ARGS const Object& ref, float x, float y
#define RET QVector<Object>
这样我就可以这样使用它:
RET func1(ARGS); //extern header declaration
但是像这样使用#define
不能编译。让#define
做到这一点有诀窍,还是根本不可能?
答案 0 :(得分:0)
假设您的所有函数都接受两个float
参数并返回int
,您可以拥有:
#define FUN(name) int (name)(float x, float y)
FUN(func1)
{
std::cout << "func1" << std::endl;
return 1;
}
FUN(func2)
{
std::cout << "func2" << std::endl;
return 2;
}
// use of functions
// func1(1.0, 1.0);
// func2(2.0, 2.0);
答案 1 :(得分:0)
#include<stdio.h>
#define RET void
#define ARGS (int a,int b)
RET func ARGS;
int main()
{
func(10,20);
}
RET func ARGS
{
printf("a and b is %d and %d",a,b);
return;
}
这是你想要的? 这对我有用。