static ( اختصاص فضای ثابت در رم و نگاه داشتن مقدار رجیستر حین فراخوانی های مختلف یک تابع ) فقط مخصوص متغیر های محلی
register که بر عکس volatile هست کارش اینه که کامپایلر رو مجبور کنه متغیر رو در رجیستر های cpu قرار بده
eeprom که همگی می دونید برای چی استفاده میشه .
extern مربوط به متغیری که در یک فایل دیگه نیز باشه .
extern مربوط به متغیری که در یک فایل دیگه نیز باشه .
میشه بیشتر توضیح بدید و محل استفادشون را بگین
یه سوال دیگه از pointer ها در چه مواقعی استفاده میشه اصلا به چه کار میآن و طرز استفادشون چطوریه؟
ممنون که با حوصله هر چه تمام تر توضیح میدین :redface:
فرض کنید برنامه ی شما از دو فایل تشکیل شده مثلا module.c و main.c
حال می خواین که یک متغیر مثلا به اسم i داشته باشید که در هر دو فایل از این متغیر مشترک استفاده کنید . در حالت عادی کار خاصی لازم نیست انجام بدید ، فقط کافیه که توی یکی از این فایل ها متغیر رو تعریف کنید و لینکر (linker ) این کار رو براتون انجام می ده . ولی بعضی از لینکر ها در بعضی از کامپایلر ها نمی تونند دو متغیر توی دو فایل مختلف رو به هم دیگه لینک بدن و از یک آدرس مشترک استفاده کنند . در این موارد هست که از extern استفاده میشه . یعنی به اشتراک گذاری یک متغیر در دو فایل مختلف . نحوه ی استفاده از Extern به این صورت هست که در فایل main کافیه متغیر رو در فایل main به صورت extern int i تعریف کنید و در فایل module نیز مجددا متغیر رو بدون Extern تعریف کنید . (به همین راحتی )
extern مربوط به متغیری که در یک فایل دیگه نیز باشه .
میشه بیشتر توضیح بدید و محل استفادشون را بگین
یه سوال دیگه از pointer ها در چه مواقعی استفاده میشه اصلا به چه کار میآن و طرز استفادشون چطوریه؟
ممنون که با حوصله هر چه تمام تر توضیح میدین :redface:
پوینتر هم چیز خاصی نیست ، یه متغیره که به آدرس اشاره میکنه (بر عکس متغیر های معمولی که به دیتا اشاره می کنند ) کاربردش هم بیشتر در جاهاییه که بخواهید از یک تابع بیش از یک خروجی بگیرید ، یا با آرایه هایی از متغییر ها به صورت آدرس دهی کار کنید . مثلا تابع sprintf برای خروجی از پوینتر استفاده می کنه . نحوه استفاده از پوینتر هم سخت نیست ، به یکی از کتابهای آموزش C مراجعه کنید ، آخه توضیحش یکم طول میکشه ، که از حوصله ی من خارجه .
موفق باشید .
سلام مطالبی که اقایان رستمی و ErfanEA گفتند خیلی جالب بود الان یک سوالی برای من پیش اماده :biggrin:
سوالم این هستش که ما چطوری میتوانیم بفهمیم که رجیسترهای داخلی (R1...R31)پر شده اند و ازاین به بعد cpu مجبور است از فضای SRAm هم استفاده کند ایا مقدار حجم مشخصی وجود دارد که مثلا بگیم از این حجم فلش برنامه بیشتر بشه یا ازاین تعداد متغیر بیشتراستفاده بشه مجبوریم از SRAM استفاده کنیم در ادامه کار :smile:
I'm Very Question and I have more Question,Please Answer All of my Questions
دیدگاه