اطلاعیه

Collapse
No announcement yet.

سوال در مورد تعریف توابع و متغیر ها

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    سوال در مورد تعریف توابع و متغیر ها

    سلام علیکم
    دو تا سوال داشتم که زیاد در کد ها موجود در نت بهشون بر خوردم

    وقتی قبل یه تابع inline می ذاریم یعنی چی ؟

    چه هنگامی قبل تعریف بعضی توابع یا متغیر ها __ (underline) می ذاریم ؟ خیلی جاها دیدم اینطوری کردن

    تشکر


    #2
    پاسخ : سوال در مورد تعریف توابع و متغیر ها

    کلمه کلیدی inline باعث میشه که کد تابع در محل فراخوانی تابع کپی بشه(و در واقع به این ترتیب دیگه پروسه فراخوانی تابع اجرا نمیشه). از این کلمه معمولا برای توابع کوچیک و پرکاربرد برای بالا بردن سرعت برنامه استفاده میشه. در مورد توابع با یه آندرلاین فکر میکنم مربوط به ورژنهای مختلف یک تابع بشه.

    دیدگاه


      #3
      پاسخ : سوال در مورد تعریف توابع و متغیر ها

      استفاده از underline مخصوصا در ابتدا و انتهای یک identifier خیلی خارج از عرفه بخاطر همین در جاهایی که منظور خاصی پشت این روش اسم گذاری باشه استفاده میشه. مثلا کامپایلر ها میخوان نشون بدن که این ident یک لغت خاصه. مثلا cdecl یا cdecl_ یا cdecl__ در کامپایلر های متفاوت معنی یکسانی دارن اما عمدتا همه به سمت استفاده از حالت آخری میرن چون شما وقتی این کاراکتر کذایی رو تایپ میکنین "چون تایپش مشکلتره" از لحاظ روانی یک بار اضافه ای به شما تحمیل میکنه و شما حواستون بیشتر جمع میشه. یا مثلا خیلی ها عادت دارن متغیر های خصوصی یک کلاس رو با این کاراکتر شروع میکنن تا در هنگام کد نویسی حالیشون باشه که این خصوصی هست نه محافظت شده یا عمومی که کس دیگه ای بتونه باهاش کار کنه. اما به هر صورت برای من و شما این یک کاراکتر مثل کاراکتر های دیگه هست و در استفاده ازش مخیر هستین. به کسی هم ربطی نداره چرا.

      راجع به inline هم مواظب باشین که اگر تابعی رو inline معرفی کردین معلوم نیست الزاما inline بشه. برای اینکار پیش فرض هایی وجود داره که فقط یکیش معرفی کردن اون به صورت inline هست. یعنی میشه گفت شما با قید این کلمه فقط <اجازه inline شدن> رو به کامپایلر میدین.

      بعضی کامپایلر ها هم حتی بعضی مواقع که خودشون صلاح بدونن بدون قید این کلمه تابع رو inline استفاده میکنن.
      مثلا gcc و حتی JIT در دات نت.

      دیدگاه

      لطفا صبر کنید...
      X