TGViewer
CleverDevs CleverDevs @cleverdevs · 10.9K subscribers
Post #2634 4.05K
توی زبان c یه کلیدواژه جالب به اسم register داریم که یه زمانی برای بهینه سازی خیلی مهم بود.

کارش این بود که به کامپایلر میگفت این متغیر قراره تو برنامه خیلی استفاده بشه، پس جای اینکه تو رم ذخیره‌اش کنی، مستقیم ببرش تو رجیستر خود پردازنده تا سرعت خوندن و نوشتنش به شدت بره بالا.
مثلا برای یه متغیر شمارنده حلقه:
int main() {
register int i = 0;
while (i < 1000) {
i++;
}
}

استفاده ازش یه سری قوانین سفت و سخت داره. مثلا نمیتونید آدرس این متغیر رو با علامت & بگیرید، چون اصلا تو مموری نیست که آدرس داشته باشه. یا اینکه متغیرهای گلوبال و استاتیک نمیتونن رجیستر بشن و حتما باید لوکال (داخل تابع) باشن.
اما قسمت جالب و معماری قضیه اینجاست: تو کامپایلرهای مدرن امروزی این کلیدواژه عملا فقط یه پیشنهاده و کامپایلر میتونه کلا نادیده‌اش بگیره. کامپایلرهای امروزی انقدر هوشمند شدن که حتی اگه شما register رو ننویسید، خودشون با آنالیز کد تشخیص میدن کدوم متغیر تو رجیستر باشه بهتره. در واقع الان کامپایلرها خیلی بهتر از خود برنامه نویس میتونن منابع پردازنده رو مدیریت کنن.
دونستن این کلیدواژه شاید الان تو کدنویسی روزمره کاربرد نداشته باشه، اما درک خیلی خوبی از تفاوت سرعت حافظه و پردازنده میده و نشون میده کامپایلرها تو این سال‌ها چقدر پیشرفت کردن. تو رفرنس‌های اصلی مثل کتاب K&R هم بهش برمیخورید.

#c
@CleverDevs - @CleverDevsGp
  • ❤ 46
  • 👍 10
  • 🔥 5
  • 👎 1
  • 👌 1
More from @cleverdevs
  1. Sep 24, 2026شرکت کوالکام اعلام کرده قرار هست پشتیبانی رسمی لپتاپهای مجهز به چیپ Snapdragon X2 از لینوک…
  2. Sep 23, 2026توی کدای کرنل برای سیستم‌کال reboot شما باید دوتا magic value به تابع بدید تا کرنل برای ای…
  3. Sep 21, 2026یه نفر اومده و یه موزیک پلیر لینوکس به اسم sung با cpp و qt نوشته که طراحی زیبا و ویژگی ها…
  4. Sep 18, 2026خب اومدم یک پست شبانه بذارم و برم تا چند روز دیگه که با یک محتوای خوب برگردم :3 براتون سوا…
  5. Sep 14, 2026بیرجند لاگی ها توی روز برنامه نویس یه چلنج باحال دیگه داشتن: چلنج فشرده سازی! (: توی این ر…
  6. Sep 13, 2026روزتون مبارک https://en.wikipedia.org/wiki/Programmer%27s_Day @CleverDevs - @CleverDevsGp
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →