Register variable? - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

Register variable?

0 امتیاز

سلام.

ما تازه تو این سایت عضو شدم.

متغیر های register چی هستن ؟ زیاد می بینمشون کسی می تونه یک مثال خوبی بزنه تا قضیه جا بیوفته برامونsmiley

سوال شده آذر 9, 1392  بوسیله ی MetiKamKhab (امتیاز 26)   1 2 6

1 پاسخ

+1 امتیاز
 
بهترین پاسخ

سرعت دستیابی به رجیسترهای پردازنده به مراتب بیشتر از حافظه سیستم هست ، کلید واژه register به کامپایلر اعلان میکنه که متغییر علامت گذاری شده پر استفاده هست و میتونه در رجیستر پردازنده ثبت بشه ( تا سرعت دسترسی و عملیات روش بیشتر بشه ) ، استفاده از این کلیدواژه نگهداری متغییر علامت گذاری شده روی رجیستر پردازنده رو تضمین نمیکنه بلکه فقط به کامپایلر پیشنهاد میده ، اینکه این عملیات صورت بگیره یا خیر بر عهده کامپایلر هست ، ممکنه کامپایلر بعد از Code Optimization یا ... به این نتیجه برسه که نیازی به این کار نیست یا هست .

در ضمن همچین کدی رو نمیشه نوشت :

  register int i = 10;
  int *a = &i;

چون نمیشه به آدرس یک رجیستر دسترسی داشت که در این موارد بسته به کامپایلر مورد استفاده ممکنه با خطا یا هشدار مواجه بشید .

این کلیدواژه در نسخه 11 به بعد ++C منسوخ شده .

پاسخ داده شده آذر 9, 1392 بوسیله ی Felony (امتیاز 503)   2 3 10
انتخاب شد آذر 10, 1392 بوسیله ی r0lex
...