本质上,由于必要,我正在基本C中模拟面向对象的编程。为了方便起见,我想使用宏或内联函数来减少需要编写的代码量。对于我的400多个变量,每个变量都需要一个类似的结构

int x;
int get_x(){
    return x;
}
void set_x(int a){
    x = a;
}


我希望有一些智能的方法可以将其编写为宏oneliner,以便我可以输入foo(x)类型并将其替换为所有代码。我认为困难在于使用变量x
 作为字符串,以便可以在函数标题中使用。

那里有C专家吗?

最佳答案

#define MAKE_OOP_VAR(var_type, var_name) \
var_type var_name; \
var_type get_##var_name() { return var_name; } \
void set_##var_name(var_type tmp) { var_name = tmp; } \

MAKE_OOP_VAR(int, x);


未经编译测试,但超出了我的脑袋。

关于c - 如何将C宏/内联函数与可变函数名称一起使用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17180971/

10-11 22:50
查看更多