ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

نمایش نتایج: از 1 به 2 از 2
  1. #1
    2007/08/02
    1,297
    795

    توابع و رجیستر های سراسری در C

    درود
    چند تا سوال دارم
    اول اینکه ما یک متغیر مثلا i تعریف میکنیم و دو تا فایل هم داریم که یکی main.c و یکی دیگه مثلا test.c هستش
    حالا به شرط اینکه ما توی تعریف رجیستر i عدد بهش نداده باشیم میشه توی فایل دوم اونو به صورت extern تعریف کرد
    سوال من اینه که اگه ما متغیری داخل فلش بریزیم و بخواهیم توی یک فایل دیگه استفاده کنیم باید چکار کنم چون وقتی رجیستری داخل فلش میریزیم عدد ثابت بهش میدیم ( مثلا یه عکس داخلش میریزیم)

    main:
    int i;

    test:
    extern int i;
    این چجوری سراسری تعریف کنم
    const unsigned char=[10]=1,2,3,4,5,6,7......



    سوال دوم
    برای تعریف تابعی که توی فایل مین تعریف کردم به صورت سراسری باز میایم و اسم اون تابع توی فایل دوم مینویسیم مثلا

    main:
    void test(void){
    ......
    }
    file2:
    void test(void);

    آیا باید کار دیگه ای هم کرد مثلا توی فایل .h مین و فایل .h فایل دوم هم باید این نوشت .
    یه موردی دارم که از تابعی که توی فایل مین هست عدد بر میگرده و من از فایل دوم اونو میخونم . نمیدونم چرا اعدادش تغییر میکنه؟؟؟

    سوال سوم اینه که
    چرا توی نرم افزار هایی مثل کد ویژن - میکرو سی -....... ما میومدیم و فایل دوم درست میکردیم و کنار فایل مین میزاشتیم و فقط با یک include ساده اون فایل اضافه میشد و تمام رجیستر هایی که بالای
    include نوشته بودیم به سایر فایل ها هم اضافه میشد ولی توی برنامه هایی مثل keil حتما باید به پروژه اضافه بشه و حتما باید فایل .h براش بسازیم و فایل .h اینکلود کنیم
    چه خوبی داره ؟؟؟
  2. #2
    2009/10/25
    تهران
    414
    24

    پاسخ : توابع و رجیستر های سراسری در C

    در خصوص سوال اول تون نمیتونم خیلی جواب درستی بدم چون خیلی نا مفهومه. شما یک سری اصطلاحاتی رو استفاده کردید که اصلا به زبان C مربوط نمیشن و مربوط به اسمبلی هستن سر همین آدم گیج میشه. مثلا منظورتون از رجیستر چیه؟ یا همین طور فلش؟
    در خصوص سوال دوم شما باید اسم تابع خارجی رو حتما با پسوند extern ذکر کنید. در غیر این صورت کامپایلر متوجه نمیشه تابع خارجیه و خراب میشه.
    برای مثال کافیه بنویسید extern func; و تمام. خودش موقع لینک میگرده و بدنه اش رو پیدا میکنه.
    در خصوص سوال سوم باید بگم این مسئله یک جور سلیقه است که طراح IDE این طوری خوشش میومده. هیچ کدوم مزیت یا عیب قطعی نسبت به اون یکی ندارن. یکی میبینید با کیل حال میکنه یکی دیگه با ویژوال استودیو یکی هم با اکلیپس یکی هم مثل من با نوت پد ساده برنامه مینویسه
نمایش نتایج: از 1 به 2 از 2

موضوعات مشابه

  1. اتصال اینورتر به شبکه برق سراسری
    توسط amin20107 در انجمن منابع تغذيه
    پاسخ: 5
    آخرين نوشته: 2015/10/30, 09:51
  2. پاسخ: 10
    آخرين نوشته: 2015/06/18, 14:18
  3. رجیستر ها و توابع کار با پروتکل CAN
    توسط R_B_R در انجمن پروسسورهای ARM
    پاسخ: 2
    آخرين نوشته: 2014/07/28, 17:53
  4. حریم شبکه سراسری برق کشور
    توسط ahmadpashaei در انجمن سيستم هاي قدرت
    پاسخ: 0
    آخرين نوشته: 2012/11/14, 14:59
  5. تعریف متغیر سراسری در C ؟!
    توسط ramezani.t در انجمن برنامه نويسي و اينترفيس
    پاسخ: 1
    آخرين نوشته: 2012/04/12, 16:44

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •