Re: class extension for C
On Mar 15, 2:26 am, Ian Collins <ian-n...@hotmail.com> wrote:
[You don't have to ask 3 times!]
Jon Slaughter wrote:
I want to use classes in some embedded C dev to make the code more
organized. Is there any post processor that can do this? If not anyone k=
now
of a very simple way to go about doing this? (some type of free C/C++ li=
ke
processor that I can modify without to much trouble)
<snip>
I don't need polymorphism, inheritence or encapsulation really(although =
it
would be nice) or even need to create objects from the class(in a sense =
the
classes are global static structs).
I just want to be able to write a bit more logical code in C with a litt=
le
bit of encapsultion(or really just organization).
Why not just use "OO C", structs with function pointer as members?
Something like
typedef struct X X;
struct X
{
int i;
void (*func)( X*, int );
};
void f( X* this, int n )
{
this->i = n;
}
int main()
{
X x;
x.func = f;
x.func( &x, 42 );
}
Could even try some macros (only tested in VC++)
regards
Andy Litle
#include <stdio.h>
struct my{
int val;
};
#define MAKEMEMFUN(Class,fun_name) \
fun_name ## Class( struct Class * This
int MAKEMEMFUN(my,get) )
{
return This->val;
}
void MAKEMEMFUN(my,set), int v)
{
This->val = v;
}
#define MFN(Class, ob,fun_name)\
fun_name ## Class ( ob
int main()
{
struct my mm;
MFN(my,&mm,set),1000);
printf("%d\n", MFN(my,&mm,get)) );
}