 <p>There are two logically different sizes you could be talking about: the size of the enum <em>constants</em> associated with a given enum type, or the size of an object whose own type is the enum type. For example, given</p> <pre><code>enum example { ONE, TWO }; enum example enum_variable; </code></pre> <p>the first declaration declares both the type <code>enum example</code> and the constants <code>ONE</code> and <code>TWO</code>.</p> <p>Perhaps surprisingly, the constants do <em>not</em> have type <code>enum example</code>; rather they have type <code>int</code>, and they will therefore consume whatever amount of space an <code>int</code> requires (C99 6.7.2.2/3).</p> <p>On the other hand, <code>enum_variable</code> does have type <code>enum example</code>, and more likely it is actually the size of this type that you hope to affect. C gives some constraints there, but designates the specific choice to be implementation-defined (C99 6.7.2.2/4). That's a bit hopeful because it requires implementations to in fact document their choice, and <a href="https://msdn.microsoft.com/en-us/library/17z041d4%28v=vs.100%29.aspx" rel="nofollow">the VS 2010 docs do so</a> if you drill down far enough. Unfortunately for you, the docs say that a variable of <code>enum</code> type is an <code>int</code>. If the docs are to be believed, then, the size of <code>enum</code> variables is not adjustable in VS 2010.</p>