10年以上前にやったオブジェクト指向風のC言語開発

20世紀に僕は組み込み系でこんな風なコードを書いていた気がします.
10年ぶりに空で書いているので正しいのかどうか不明です.
ほら動かしたいんじゃなくて昔は〜的なゴミネタですよ(何

#include <stdio.h>

typedef struct {
  int (*method1)( void);
  int property1;
} Foo;

Foo *FooNew( void);
int FooMethod1( void);

int main( int argc, void **argv) {
  Foo *foo = FooNew();
  printf("%s: %d\n", *argv, foo->property1);
}

Foo *FooNew( void) {
  Foo *foo;

  foo = (Foo *)malloc(sizeof(Foo));
  if (foo != NULL) {
    foo->method1 = FooMethod1;
    foo->property1 = foo->method1();
  }
  return foo;
}

int FooMethod1( void) {
  return 1;
}