نوشته های من

از تجربه ی بودن

نوشته های من

از تجربه ی بودن

نوشته های من

به شکل زیبایی تصادفی

Instagram
www.instagram.com/maddy.tu.ra

drafter/ English
dra-fter.blogspot.com

بایگانی
آخرین مطالب
محبوب ترین مطالب
مطالب پربحث‌تر

زبان C

پنجشنبه, ۱۹ آبان ۱۴۰۱، ۱۰:۰۹ ب.ظ

سلام

 

دو هفته ی اخیر دوبار فهمیدم که هنوز که هنوزه زبون C را کامل بلد نیستم.

 

float c[10];

float* ptr_1;

float* ptr_2;

ptr_1 = c;

ptr_2 = &c;

شاید تعجب داشته باشه، شاید هم نه. ولی ptr1 == ptr2 هست و برای اشاره به یک آرایه میشود از جفتشان استفاده کرد.

مورد دوم هم این هست که فکر میکردم دو structure رو نمیشود به همدیگر assign کرد و کمی درست است ولی نه الزاما. assign کردن دو structure شبیه memcpy میماند و در حالتی که در structure ها آرایه هایی با ابعاد متفاوت نباشند کاملا شدنی است.

 

بعد از این برای این که بار دیگر به خودم ثابت کنم که این زبان پایان بسیار دوری دارد، وارد Github شدم و کد زبان cpython را کمی مطالعه کردم تا به خود دیگر جرات ندهم که بگویم C میدانم.

  • ظریف

نظرات (۴)

هر دو مورد برام تازه بود . 

مورد دوم رو منم فک میکرم نمیشه هرچند هیچوقت تست نکردم . 

ولی شبیه مورد اولو تو پوینتر های توابع برخورده بودم بهش . درواقع اگه بیایم یه پوینتر تایپ از یک تابع تعریف کنیم میتونیم رفرنس اون تابع رو بدونه گذاشتن علامت & قبلش بدیم به پوینتره . این حالت با گذاشتنش هیچ فرقی نداره

همچنین وقتی میخوایم از طریق اون پوینتره  ، تابع رو فراخونی کنیم لزوما نیازی نیست قبلش علامت دیرفرنس (*) بزاریم . 

 

پیچیدگی زیادی داره سی ولی بازم این پیچیدگی هارو یاد میگیری و حال میکنی وقتی میبینی داری ازشون بهره میگیری تو کدت

پاسخ:
چقدر جالب! نمیدونستم اینو هم در مورد پوینتر به توابع! 

متاسفانه این جزئیاتش خیلی فرّاره، آدم استفاده نکنه یادش میره.

مردی سعدی راست گفته بود که:

سه چیز پایدار نماند: مال بی تجارت و علم بی عمل و ملک بی سیاست.

هر وقت یه چی که قبلا بلد بودم یادم میره؛ این یادم میوفته.

پاسخ:
دوستی بی ارتباط هم!

ptr1 == ptr2 کلا که ارور می ده.

کربن رو ببین گوگلی ها توسعه دادن.

پاسخ:
واقعا؟ البته موقع نوشتن منظورم این بود که عدد خود پوینتر ها برابر میشه.
باید ببینم!

https://github.com/carbon-language/carbon-lang

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی