元派遣プログラマの自称技術系ブログです。雑記とか自作のオープンソースプロジェクトの話とか。
Javaとか組込とかできます。お仕事ください。

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も同じサイズのメモリ使ってるいるから、仮想関数が無ければ同じですね。継承を使った場合の比較は省略します。