خانه / برنامه نویسی / ساختمان یا استراکچر (struct) در زبان برنامه نویسی C

 

ساختمان یا استراکچر (struct) در زبان برنامه نویسی C

خوب در یک پرشی که برای توضیح در مورد ساختمان ها داشتیم من این نوشته را باز کردم تا در درک ادامه مطلب کتابخانه CMSIS مشکلی نداشته باشید

ساختمان چیست؟

اگر آشنایی با زبان برنامه نویسی C داشته باشید حتما در مورد آرایه ها می دانید

تفاوت آرایه با ساختمان در این است که آرایه فقط می تواند یک نوع داده را به تعداد مورد نیاز در خود ذخیره کند ولی ساختمان می تواند انواع داده را در خود ذخیره کند

به مثال زیر که در بخش سوم مبحث کتابخانه CMSIS  نیز به آن اشاره کردیم دقت کنید

ساختمان یا استراکچر (struct)

در این مثال داده ها که همان رجیستر ها هستند با نوع داده unit32_t و به صورت __IO تعریف شده اند

unit32_t همان int است و ۳۲ بیت اشغال می کند و __IO معنی خواندنی و نوشتنی می دهد . استثناً در این مثال همه داده ها از نوع unit32_t هستند ولی ممکن است متفاوت باشد و از آرایه و حتی از خود ساختمان در ساختمان دیگر نیز استفاده شود.

نکته قابل به ذکر قرار گیری ساختمان ها به ترتیب پشت سر هم است . یعنی داده اول اگر با توجه به مثال از 0x00 شروع شود با توجه به اینکه ۳۲ بیتی (۴ بایت) است داده بعدی در آدرس 0x04 قرار می گیرد

حتما در ادامه این مطلب را هم بخوانید:  اتصال STM32 به کامپیوتر با پورت سریال (بخش تکمیلی راه اندازی پروتکل سریال STM32)

نحوه تعریف ساختمان

روش اول

}<ساختمان>struct

عناصر ساختمان

;{

روش دوم

در این روش متغیر های ساختمان در انتهای تعریف ساختمان مشخص می شود

}struct

عناصر ساختمان

;اسامی متغیر های ساختمان{

روش سوم

در این روش می توان از اسم جدید برای تعریف متغیر های دیگر استفاده کرد

}‌typedef struct

عناصر ساختمان

;اسم جدید{

ساختمان به ; ختم می شود

تعریف متغیر از نوع ساختمان

در

روش اول

  ;<اسامی متغیر های از نوع ساختمان><ساختمان>struct

در

روش سوم

;<اسامی متغیر><اسم جدید>

نحوه دسترسی به عناصر ساختمان

<عنصر><اسم متغیر از نوع ساختمان>

خوب برگردیم سر بحث کتابخانه CMSIS

مطالب آموزشی مرتبط:

کتابخانه CMSIS بخش اول

کتابخانه CMSIS بخش دوم

کتابخانه CMSIS بخش سوم(نهایی)

پردازنده های ARM

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *