زبان C از لحاظ بزرگی عناصر و همچنین از نظر نمایش داخلی آنها استاندارد ویژه‌ای به کار نمی‌برد. به طور کلی اعداد صحیح مثبت، منفی و صفر و نیز متغیرهایی که مقادیر صحیح را می‌پذیرند، ۱۶ یا ۳۲ بیت حافظه اشغال می‌کنند. فرم اولیه داده‌هایی از نوع صحیح، یا همان int مقدار صحیح در نظر گرفته می‌شود. اما اندازه یا بزرگی آن برحسب نوع ماشین و کامپایلر فرق می‌کند.
در هنگام تعریف متغیرهای از نوع int توصیف‌کننده‌هایshort ،long ، signed، unsigned و یا ترکیبی از آنها نیز ممکن است به کار رود.
داده‌هایی که با این کلمات توصیف می‌شوند، ممکن است از کامپایلری به کامپایلر دیگر تفسیر متفاوت داشته باشند، ولی اساس آنها یکسان است. اگر مقادیر صحیح در کامپایلری در حالت عادی ۲ بایت باشد، بین short int و int فرقی نخواهد بود و هر دو ۱۶ بیت یا ۲ بایت حافظه اشغال می‌کنند. در ضمن short int را می‌توان فقط به صورت short نیز به کار برد (یعنی پیش‌ فرض آن است که short همان short int است). در چنین حالتی long int نیز ۴ بایت حافظه اشغال خواهد کرد که آن را هم می‌توان فقط به صورت long به کار برد (یعنی در اینجا نیز پیش ‌فرض آن است که long همان long int است). ولی چنانچه مقادیر صحیح در حالت عادی ۴ بایت حافظه اشغال کنند، short int یا فقط short 2 بایت حافظه به کار خواهد برد. اما بین long int و int (یا فقط long) تفاوتی وجود نخواهد داشت و هر دو ۴ بایت حافظه اشغال خواهند کرد.
در مواردی متغیرها، فقط دارای مقادیر غیرمنفی خواهند بود. مثلاً متغیری که برای شمارش به کار می‌رود، یکی از این موارد و همیشه مثبت است. زبان C اجازه می‌دهد که‌این گونه متغیرها را با به کار بردن توصیف‌کننده unsigned، بدون علامت اعلان کنیم. یک مقدار صحیح بدون علامت از نظر میزان حافظه اشغالی با مقدار صحیح معمولی فرقی ندارد. تفاوت میان آنها در بیت سمت چپ است که بیت علامت نامیده می‌شود و در مورد مقادیر صحیح بدون علامت، این بیت نیز مثل سایر بیتها برای نمایش مقدار عدد به کار می‌رود و در نتیجه مقادیر صحیح بدون علامت همیشه غیرمنفی است و بزرگی آن ممکن است تقریباً تا دو برابر مقدار صحیح معمولی باشد. برای مثال عدد صحیح معمولی از ۳۲۷۶۸- تا ۳۲۷۶۷+ (در مورد مقادیر صحیح دو بایتی) تغییر می‌کند، بنابراین مقدار صحیح بدون علامت از صفر تا ۶۵۵۳۵ تغییر خواهد کرد.
در استاندارد ریچی توصیف‌‌‌کننده signed وجود ندارد. ولی استاندارد ANSI آن را پشتیبانی می‌کند. در اغلب موارد به صورت پیش‌فرض، متغیرها signedاند. بنابراین، به استفاده از توصیف‌کننده‌ signed در آنها نیازی نخواهد بود. در اغلب مفسرها پیش‌فرض برای داده‌های کاراکتری signed char است.