C言語はC++よりメモリを使わない!ということはない。
ツイッターで間違いを指摘して頂いたので、検証をしました。
class TestCpp { int m; public: TestCpp() { m=1; }; ~TestCpp() { }; }; typedef struct TestC{ int m; }TestC_t; void TestC_init(TestC* st) { st->m=1; } void TestC_fin(TestC* st) { return; } int _tmain(int argc, _TCHAR* argv[]) { int a; TestCpp cpp; TestC c; int b; printf("CPP:%d\n",sizeof(cpp)); printf("C:%d\n",sizeof(c)); return 0; }
結果、cppもcも同じサイズのメモリ使ってるいるから、仮想関数が無ければ同じですね。継承を使った場合の比較は省略します。