ساختمان چیست؟
اگر آشنایی با زبان برنامه نویسی C داشته باشید حتما در مورد آرایهها میدانید.
تفاوت آرایه با ساختمان در این است که آرایه فقط میتواند یک نوع داده را به تعداد مورد نیاز در خود ذخیره کند ولی ساختمان می تواند انواع داده را در خود ذخیره کند.
به مثال زیر دقت کنید:
در این مثال دادهها که همان رجیسترها هستند با نوع داده unit32_t و به صورت __IO تعریف شدهاند.
unit32_t همان int است و ۳۲ بیت اشغال میکند و __IO معنی خواندنی و نوشتنی میدهد. استثناً در این مثال همه دادهها از نوع unit32_t هستند ولی ممکن است متفاوت باشد و از آرایه و حتی از خود ساختمان در ساختمان دیگر نیز استفاده شود.
نکته قابل به ذکر قرار گیری ساختمانها به ترتیب پشت سر هم است. یعنی داده اول اگر با توجه به مثال از 0x00 شروع شود با توجه به اینکه ۳۲ بیتی (۴ بایت) است داده بعدی در آدرس 0x04 قرار میگیرد.
نحوه تعریف ساختمان
روش اول
}<ساختمان>struct
عناصر ساختمان
;{
روش دوم
در این روش متغیرهای ساختمان در انتهای تعریف ساختمان مشخص میشود.
}struct
عناصر ساختمان
;اسامی متغیرهای ساختمان{
روش سوم
در این روش میتوان از اسم جدید برای تعریف متغیرهای دیگر استفاده کرد
}typedef struct
عناصر ساختمان
;اسم جدید{
ساختمان به ; ختم می شود
تعریف متغیر از نوع ساختمان
در
روش اول
;<اسامی متغیرهای از نوع ساختمان><ساختمان>struct
در
روش سوم
;<اسامی متغیر><اسم جدید>
نحوه دسترسی به عناصر ساختمان
<عنصر><اسم متغیر از نوع ساختمان>
امیدوارم این نوشته برایتان مفید باشد.
منبع: میکرودیزاینرالکترونیک