כמיסות
כמיסות מתייחס לעובדה שמאגדים מספר דברים יחד (מתוך בבילון: encapsulate - לעטוף בקרום, לסגור בבועה). המשתנים הללו שמאוגדים יחד יכולים להיות ציבוריים או פרטיים, מבחינת הקומפיילר אין הבדל בינם, וכאשר אתה מעביר/משתמש/יוצר/עושה-משהו עם קפסולה כזו (אובייקט) - כל המשתנים יעברו ללא קשר לציבוריותם. האבחנה בין פרטי וציבורי היא רק בדיקה בזמן הקומפילציה כדי לעזור למפתח להגן על עצמו מטעויות, בזמן ריצה אין הבדל בינהם כלל. לא נוצר קוד מכונה שונה עבור משתנים ציבוריים ופרטיים. האבחנה בין פרטי וציבורי עוזרת לאכוף מוסכמות בין מפתחים שהיו קיימות. למשל, מקובל במקומות מסויימים להוסיף קו-תחתי בתחילת שמות של משתנים פרטיים כדי להבחין אותם ממשתנים שמותר לגעת בהם. לגבי הדוגמה שהבאת, כפי שסלע אמר הבאת קוד ב C++. שים לב שכיום רוב הקומפיילרים הנפוצים אינם ספציפיים ל C או ל-C++ אלא מראש מיועדים ל C++ ומאפשרים לקמפל גם C משום ש C מהווה ב 99% מעין subset ל C++. לכן קומפיילרים הם יחסית סבלניים גם לדברים שאינם אמורים להיות ב C "קלאסי". ואם אתה חובב סביבת מיקרוסופט יש נטיה כללית בכלל להיות סבלני לדברים לא סטמדרטיים. בדר"כ כאשר אתה נותנים לקובץ סיומת C (בניגוד לסיומת C++,Cpp,cxx וכו') הקומפיילר משער שמדובר ב C קלאסי, בחלק מהקומפיילרים יש דגלי קומפילציה שאפשר להעביר כדי לבקש במיוחד שיקפיד על קוד תואם C ויוציא אזהרות אם לא.