如何使用C宏/内联函数来使用变量函数名?

时间:2013-06-19 00:09:42

标签: c oop macros inline-functions

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

这样的结构
int x;
int get_x(){
    return x;
}
void set_x(int a){
    x = a;
}

我希望有一些聪明的方法可以将其写为宏oneliner,这样我就可以提供类型foo(x),它将用所有代码替换它。我认为,困难在于使用变量x  作为字符串,以便它可以在函数标题中使用。

那里有些C大师以前遇到过这类事吗?

1 个答案:

答案 0 :(得分:1)

#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);

没有经过测试但是不受欢迎。