اطلاعیه

Collapse
No announcement yet.

حوزه عمل متغییر ؟

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

    حوزه عمل متغییر ؟

    سلام
    یه فایلی رو دارم تحلیل میکنم . یه کارهای عجیبی توش کرده .
    تو کد ویژن یه فایل h. رو include کرده. توی اون فایل یه سری متغییر تعریف کرده . تو فایل اصلی هم همون متغییر ها رو به عنوان متغییر global تعریف کرده .

    مبحث اسکوپ متغییر در زبان c رو مرور کردم . راجع به اسکوپ متغییر در توابع و بلوک ها خوب متوجه شدم . ولی راجع به اون فایلهایی که با فرمت h. یا c. هستند و به برنامه اصلی add میشن چیزی توضیح نداده بود . ممنون میشم راهنماییم کنید .

    آیا متغیر global که در برنامه اصلی تعریف میکنیم در فایل h. که include میکنیم قابل دسترسی است ؟
    آیا متغیر محلی که در برنامه اصلی تعریف میکنیم در فایل h. که include میکنیم قابل دسترسی است ؟

    آیا متغیر ی که در فایل h. تعریف میکنیم در برنامه اصلی قابل دسترسی است ؟

    کلا یه منبع خوب اگه دراین باره میشناسید لطف کنید معرفی کنید .
    اِنَّ الَّذِینَ یُحِبُّونَ أَنْ تَشِیعَ الْفاحِشَهُ فِی الَّذِینَ آمَنُوا لَهُمْ عَذابٌ أَلِیمٌ فِی الدُّنْیا وَ الْآخِرَهِ وَ اللَّهُ یَعْلَمُ وَ أَنْتُمْ لا تَعْلَمُونَ.
    کسانى که دوست دارند زشتی ها در میان مردم با ایمان شیوع یابد عذاب دردناکى براى آنها در دنیا و آخرت است، و خداوند میداند و شما نمی‏دانید. (نور19)

    #2
    پاسخ : حوزه عمل متغییر ؟

    دوست عزیز اینا رو از خودم میگم شاید اشتباه باشه . :biggrin:
    ببین اگه میخوای یه متغغیر سراسری داشته باشی که بقیه فایل هایی که include میکنی به اون دسترسی داشته باشن
    باید متغیر های سراسری رو پشتش اینو بنویسی
    کد:
    extern unsigned int data
    در حالت عادی فک نمیکنم فایل هایی که include میکنی به متغغیر هات دسترسی داشته باشن بدونه کد بالا.
    ولی باز هم منتظرپاسخ اساتید هستیم.

    دیدگاه


      #3
      پاسخ : حوزه عمل متغییر ؟

      یه چیزی رو یادتون باشه، include کردن یک فایلِ h. یعنی که هر چی که توی فایلِ h. نوشته شده بیاد به جای این خطِ include جایگزین بشه. کپی و Paste بشه.
      فرض کنید یه پروژه دارید که توش 10 تا فایل سورس (c. یا cpp.) اضافه شده و هر کدوم توابع و متغیرهای مختص خودشون رو دارند. حالا، من اگه بخوام توی یه فایِ دیگه، از متغیرِ یه فایلِ دیگه استفاده کنم باید چی کار کنم؟
      مثلاً x1 در فایل source1.c تعریف شده، x2 در فایل source2.c تعریف شده و الی آخر. می خوام توی فایل source2.c از متغیر x1 استفاده کنم. فقط کافیه بالاش بنویسم extern int x1; همین.
      اینجوری کامپایلر به اینکه متغیر توی این فایل غریبه ست گیر نمیده و بررسیِ اصالت متغیر رو می سپاره به دست لینکر

      حالا، اگه شما توی یه فایلِ هدر (h.) از عبارت extern استفاده کردی و اون هدر رو توی یه فایلی include کردی، به شما دسترسی میده که از متغیر استفاده کنی و کامپایلر خطا نمیده. به شرطی که حداقل یه جایی (توی یه دونه فایلِ c.) اون متغیر تعریف شده باشه.
      بیایید با Google آشتی کنیم!

      دیدگاه

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