مهندس موفق الکترونیک

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

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

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

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

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

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

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

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

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

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

مطلب پیشنهادی:  بهترین زبان های برنامه نویسی امسال

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

روش اول

}<ساختمان>struct

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

;{

روش دوم

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

}struct

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

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

روش سوم

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

}‌typedef struct

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

;اسم جدید{

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

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

در

روش اول

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

در

روش سوم

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

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

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

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

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

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

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

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

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

اگر این نوشته‌ برایتان مفید بود لطفا کامنت بنویسید.

دیدگاهتان را بنویسید

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