#سی
تو زبان C یه کلمه داریم به عنوان
[بطور کلی storage-class یه متغیر تعیین میکنه اون چطور ذخیره بشه، طول عمرش تا کجا باشه و از کجاها تو برنامه قابل دسترسی باشه.]
با
و وقتی این پیشنهاد برنامه نویس پذیرفته بشه سرعت دسترسی به اون متغیر افزایش چشمگیری پیدا میکنه که توی تصویر اول مشخصه.
یه نکتهای هم که هست اینه که شما دیگه نمیتونین آدرسی از این متغیر دریافت کنین چون دیگه جایی توی RAM نداره.
حالا که با
[البته اینجا چون حلقه کاری انجام نمیداد و خالی بود کامپایلر کلا حلقه رو ignore میکنه ولی منظور رو میرسونه.]
🚁 Hicte Blog | (smm)
تو زبان C یه کلمه داریم به عنوان
register که میاد storage-class یه متغیر رو تغییر میده. [بطور کلی storage-class یه متغیر تعیین میکنه اون چطور ذخیره بشه، طول عمرش تا کجا باشه و از کجاها تو برنامه قابل دسترسی باشه.]
با
register برنامه نویس به کامپایلر پیشنهاد میده که این متغیر بجای اینکه توی RAM قرار بگیره بیاد تو registerهای CPU باشه تا دسترسی بهش سریعتر باشه. اما این صرفا یک پیشنهاده!و وقتی این پیشنهاد برنامه نویس پذیرفته بشه سرعت دسترسی به اون متغیر افزایش چشمگیری پیدا میکنه که توی تصویر اول مشخصه.
یه نکتهای هم که هست اینه که شما دیگه نمیتونین آدرسی از این متغیر دریافت کنین چون دیگه جایی توی RAM نداره.
حالا که با
register آشنا شدیم شاید استفاده ازش بنظر خیلی خفن بیاد ولی تو کامپایلرهای مدرن دیگه بهینه سازی به قدری خوب هست که معمولا نیازی نیست ما این چیزا رو تعیین کنیم :) توی تصویر دوم gcc رو با فلگ O3 برای بهینه سازی میبینین که چقدر تفاوت ایجاد کرده. [البته اینجا چون حلقه کاری انجام نمیداد و خالی بود کامپایلر کلا حلقه رو ignore میکنه ولی منظور رو میرسونه.]
🚁 Hicte Blog | (smm)
👍7🔥2
#کتاب
Understanding and Using C Pointers: Core Techniques for Memory Management
Author: Richard Reese
Edition: 1st
Date: June 2013
Publisher: O'Reilly Media
Length: 223 pages
Amazon 👀
Download 😉
🚁 Hicte Blog | (smm)
Understanding and Using C Pointers: Core Techniques for Memory Management
Author: Richard Reese
Edition: 1st
Date: June 2013
Publisher: O'Reilly Media
Length: 223 pages
Amazon 👀
Download 😉
🚁 Hicte Blog | (smm)
👍4
HICTE Blog
#کتاب Understanding and Using C Pointers: Core Techniques for Memory Management Author: Richard Reese Edition: 1st Date: June 2013 Publisher: O'Reilly Media Length: 223 pages Amazon 👀 Download 😉 🚁 Hicte Blog | (smm)
توضیحات:
Improve your programming through a solid understanding of C pointers and memory management. With this practical book, you’ll learn how pointers provide the mechanism to dynamically manipulate memory, enhance support for data structures, and enable access to hardware. Author Richard Reese shows you how to use pointers with arrays, strings, structures, and functions, using memory models throughout the book.
Difficult to master, pointers provide C with much flexibility and power―yet few resources are dedicated to this data type. This comprehensive book has the information you need, whether you’re a beginner or an experienced C or C++ programmer or developer.
Get an introduction to pointers, including the declaration of different pointer types
Learn about dynamic memory allocation, de-allocation, and alternative memory management techniques
Use techniques for passing or returning data to and from functions
Understand the fundamental aspects of arrays as they relate to pointers
Explore the basics of strings and how pointers are used to support them
Examine why pointers can be the source of security problems, such as buffer overflow
Learn several pointer techniques, such as the use of opaque pointers, bounded pointers and, the restrict keyword
🤷♂7👍2😢2🤷♀1🤣1
HICTE Blog
#سی
عبارت a+++b چطور تفسیر میشه؟
عبارت a+++b چطور تفسیر میشه؟
#سی
توضیح:
تو تجزیهی فایل منبع به توکنها، کامپایلر هر کاراکتر متوالی [غیر از فاصله] رو به توکن فعلی که خونده میشه اضافه میکنه؛ مگر اینکه اضافه کردن اون کاراکتر به توکن فعلی، یه توکن معتبر رو نامعتبر کنه.
تو مثال:
بعد از خوندن کاراکتر a به عنوان یه توکن؛ از اونجایی که با اضافه شدن کاراکتر + به a یه نام متغیر یا کلمهی کلیدی معتبر تشکیل نمیشه؛ توکن جدیدی آغاز میشه. همینطور + دوم به اولی اضافه میشه و یه توکن معتبر ++ رو تشکیل میدن که عملگر افزایش هست. تو ادامه اگه + سوم به توکن فعلی اضافه بشه، توکن رو نامعتبر میکنه پس + سوم یه توکن جدید ایجاد میکنه. همینطور وقتی کاراکتر b خونده میشه هم نمیتونه به + وصل بشه چون خود + یه توکن معتبر هست و اضافه کردن b به اون نامعتبرش میکنه. پس b هم یه توکن جدید رو ایجاد میکنه.
پس این عبارت به ترتیب توکن های
رو تشکیل میده.
🚁 Hicte Blog | (smm)
توضیح:
تو تجزیهی فایل منبع به توکنها، کامپایلر هر کاراکتر متوالی [غیر از فاصله] رو به توکن فعلی که خونده میشه اضافه میکنه؛ مگر اینکه اضافه کردن اون کاراکتر به توکن فعلی، یه توکن معتبر رو نامعتبر کنه.
تو مثال:
a+++bبعد از خوندن کاراکتر a به عنوان یه توکن؛ از اونجایی که با اضافه شدن کاراکتر + به a یه نام متغیر یا کلمهی کلیدی معتبر تشکیل نمیشه؛ توکن جدیدی آغاز میشه. همینطور + دوم به اولی اضافه میشه و یه توکن معتبر ++ رو تشکیل میدن که عملگر افزایش هست. تو ادامه اگه + سوم به توکن فعلی اضافه بشه، توکن رو نامعتبر میکنه پس + سوم یه توکن جدید ایجاد میکنه. همینطور وقتی کاراکتر b خونده میشه هم نمیتونه به + وصل بشه چون خود + یه توکن معتبر هست و اضافه کردن b به اون نامعتبرش میکنه. پس b هم یه توکن جدید رو ایجاد میکنه.
پس این عبارت به ترتیب توکن های
a
++
+
b
رو تشکیل میده.
🚁 Hicte Blog | (smm)
👍4🔥1
#کتاب
How Linux Works: What Every Superuser Should Know
Author: Brian Ward
Edition: 3rd
Date: April 2021
Publisher: No Starch Press
Length: 464 pages
Amazon 👀
Download 😉
🚁 Hicte Blog | (smm)
How Linux Works: What Every Superuser Should Know
Author: Brian Ward
Edition: 3rd
Date: April 2021
Publisher: No Starch Press
Length: 464 pages
Amazon 👀
Download 😉
🚁 Hicte Blog | (smm)
👍3🤔1
HICTE Blog
#کتاب How Linux Works: What Every Superuser Should Know Author: Brian Ward Edition: 3rd Date: April 2021 Publisher: No Starch Press Length: 464 pages Amazon 👀 Download 😉 🚁 Hicte Blog | (smm)
توضیحات:
Linux for the Superuser
Unlike some operating systems, Linux doesn’t try to hide the important bits from you—it gives you full control of your computer. But to truly master Linux, you need to understand its internals, like how the system boots, how networking works, and what the kernel actually does.
In this third edition of the bestselling How Linux Works, author Brian Ward peels back the layers of this well-loved operating system to make Linux internals accessible. This edition has been thoroughly updated and expanded with added coverage of Logical Volume Manager (LVM), virtualization, and containers.
You'll learn:
How Linux boots, from boot loaders to init (systemd)
How the kernel manages devices, device drivers, and processes
How networking, interfaces, firewalls, and servers work
How development tools work and relate to shared libraries
How to write effective shell noscripts
You’ll also explore the kernel and examine key system tasks inside user-space processes, including system calls, input and output, and filesystem maintenance. With its combination of background, theory, real-world examples, and thorough explanations, How Linux Works, 3rd Edition will teach you what you need to know to take control of your operating system.
NEW TO THIS EDITION:
Hands-on coverage of the LVM, journald logging system, and IPv6
Additional chapter on virtualization, featuring containers and cgroups
Expanded discussion of systemd
#سی
میدونستین تو یه سورس کد سی :> معادل ] هست؟
بهش میگن digraph واسه اینکه قدیما یه سری کاراکترا رو بعضی کیبوردا نداشتن!
در اصل اول حالت سه تاییش رو ساختن و بهش trigraph میگن که میشه تو جاهای بیشتری "مثلا تو یه رشته" ازش استفاده کرد و ۹ تا کاراکتر رو معادل کرده.
بعد دیدن خسته میشن سه تا سه تا کاراکتر بنویسن digraph رو هم ساختن.
🚁 Hicte Blog | (smm)
میدونستین تو یه سورس کد سی :> معادل ] هست؟
بهش میگن digraph واسه اینکه قدیما یه سری کاراکترا رو بعضی کیبوردا نداشتن!
<: ≈ [
:> ≈ ]
<% ≈ {
%> ≈ }
%: ≈ #در اصل اول حالت سه تاییش رو ساختن و بهش trigraph میگن که میشه تو جاهای بیشتری "مثلا تو یه رشته" ازش استفاده کرد و ۹ تا کاراکتر رو معادل کرده.
بعد دیدن خسته میشن سه تا سه تا کاراکتر بنویسن digraph رو هم ساختن.
🚁 Hicte Blog | (smm)
👍7🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
#معرفی
این niri هم از نظر استفاده درست حسابی از تمام پیکسلای مانیتور خوبه!
بی نهایت پنجره تو یه لیست افقی که اسکرول میشه، میشه باز کرد.
[ پیشفرض هم ست کردم پنجره ها صفحه رو کامل بگیرن. بوردر و گپ رو هم حذف کردم. ]
از اونور بی نهایت ورک اسپیس تو جهت عمودی میشه ایجاد کرد که هر کدوم شامل اون بی نهایت پنجره تو جهت افقی هست.
یعنی یه ماتریس دو بعدی بی نهایت از پنجره ها!
https://wiki.archlinux.org/noscript/Niri
🚁 Hicte Blog | (smm)
این niri هم از نظر استفاده درست حسابی از تمام پیکسلای مانیتور خوبه!
بی نهایت پنجره تو یه لیست افقی که اسکرول میشه، میشه باز کرد.
[ پیشفرض هم ست کردم پنجره ها صفحه رو کامل بگیرن. بوردر و گپ رو هم حذف کردم. ]
از اونور بی نهایت ورک اسپیس تو جهت عمودی میشه ایجاد کرد که هر کدوم شامل اون بی نهایت پنجره تو جهت افقی هست.
یعنی یه ماتریس دو بعدی بی نهایت از پنجره ها!
https://wiki.archlinux.org/noscript/Niri
🚁 Hicte Blog | (smm)
🔥10👍3❤1