اطلاعیه

Collapse
No announcement yet.

تعریف یه اشاره گر به عنوان آرگومان تابع؟

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

    #16
    پاسخ : پاسخ : تعریف یه اشاره گر به عنوان آرگومان تاب

    نوشته اصلی توسط ASHIT AXAR
    درسته. کدهای میکرو تغییر نمی کنن. چون توی حافظه ی فلش هستن. هر خط کدی که باید اجرا بشه از فلش خونده میشه و اجرا میشه (حتی به SRAM هم احتیاجی نیست - واسه همین بعضی میکروها اصلا رم ندارن - مثل tiny15)
    متغیر ها هم که در رم ذخیره میشن (البته به غیر از متغیر های موقتی و اونایی که با کلمه ی register تعریف شدن)
    حالا اگه یک اشاره گر از فضای حافظه ی خودش تجاوز کنه داده های دیگه ای رو بی اجازه تغییر میده و بی اعتبار میکنه.
    نتیجه این چیزی نیست جز ناهنجاری
    خب برنامه تو flash باشه و متغییر ها تو sram ، نباید مشکلی پیش بیاد، مگه این که متغییر های دیگه رو تغییر بده وگرنه برنامه میکرو رو فک نکنم تغییر بده
    نظرت؟
    اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

    اگه دوس دارید سریع به جواب برسید :
    1) قبل از پرسیدن سوال، بسرچید.
    2) سوالاتون رو با جزئیات کامل مطرح کنید.

    دیدگاه


      #17
      پاسخ : پاسخ : تعریف یه اشاره گر به عنوان آرگومان تاب

      نوشته اصلی توسط md3848
      خب برنامه تو flash باشه و متغییر ها تو sram ، نباید مشکلی پیش بیاد، مگه این که متغییر های دیگه رو تغییر بده وگرنه برنامه میکرو رو فک نکنم تغییر بده
      نظرت؟
      بله درسته.
      برنامه(کدهای روی حافظه فلش) میکرو از داخل امکان تغییر ندارن. ولی فرآیند(پردازش در حال اجرا) دچار ناهنجاری میشه.
      هر روند پیش بینی نشده ناهنجاری محسوب میشه و این به عهده ی برنامه نویس هستش که از ناهنجاری جلوگیری کنه.
      اگه کاربرد حساس باشه همین ناهنجاری های به ظاهر جزیی میتونه آسیب های زیادی بزنه.

      If the wind will not serve, take to the oars

      دیدگاه


        #18
        پاسخ : پاسخ : تعریف یه اشاره گر به عنوان آرگومان تاب


        نوشته اصلی توسط ASHIT AXAR
        برنامه(کدهای روی حافظه فلش) میکرو از داخل امکان تغییر ندارن.

        اگه از بوت استفاده کرده باشیم امکان تغییر وجود داره...


        نوشته اصلی توسط ASHIT AXAR
        ولی فرآیند(پردازش در حال اجرا) دچار ناهنجاری میشه.هر روند پیش بینی نشده ناهنجاری محسوب میشه و این به عهده ی برنامه نویس هستش که از ناهنجاری جلوگیری کنه.
        اگه کاربرد حساس باشه همین ناهنجاری های به ظاهر جزیی میتونه آسیب های زیادی بزنه.
        این دلیل و منبع این حرف؟




        آخه دیگه حافظه فلش میکرو مثل رم نیست که یه حافظه تصادفی بتونی ازش بگیری
        حالا sram یه چیزی که میگید متغییر ها داخلش هستن، و اگه یه اشاره گری تعریف کنیم که داخل اس رم ذخیره شده و میخواد حافظه اختیار کنه در این حالت نمیتونه برنامه میکرو رو تغییر بده ولی میتونه متغییر ها رو دستگاری کنه و باعث ایجاد مشکل بشه
        درست میگم دیه؟
        اشاره گر تو همون حافطه ای که ذخیره میشه تو همون قسمت میتونه مشکل ساز بشه
        اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

        اگه دوس دارید سریع به جواب برسید :
        1) قبل از پرسیدن سوال، بسرچید.
        2) سوالاتون رو با جزئیات کامل مطرح کنید.

        دیدگاه


          #19
          پاسخ : تعریف یه اشاره گر به عنوان آرگومان تابع؟

          سلام به همه
          یه توضیح کلی:
          انتقال آرگومان ها با مقدار و با ارجاع
          در زبان c تمام انتقال ها از طریق مقدار منتقل میشه.
          هنگامی که آرگومانی از این طریق ارسال میشه در واقع یک کپی ازش به تابع اسال میشه و توی تابع هر بلایی که سر کپی متغیر بیاریم ، هیچ تاثیری بر اصل متغیر نداره.
          انتقال با ارجاع در زبان C :
          از اونجایی که این شیوه انتقال بسیار پرکاربرده و در زبان c هم این شیوه به صورت یه شیوه مشخص وجود نداره میایم از قدرت بزرگ زبان c استفاده میکنیم و در واقع این دستور رو خود برنامه نویس در زبان c شبیه سازی میکنه
          شیوه:
          شیوش استفاده از همون اشاره گر ها هستش (عملگر آدرس address operator) و (عمگر غیر مستقیم indirect operator)
          نکته:آرایه هابه صورت خودکار از طریق ارجاع منتقل میشن
          نکته: اگر از یه آرایه فقط یه قسمتش رو انتخاب کنیم در این حالت تمام خصلت های یک متغیر غیر آرایه ای رو به خودش میگیره و به صورت انتقال با مقدار ارسال میشه
          ----------------------------
          این که هنوز بعد از گذشت این همه سال از ساخت زبان c باز زبان c رو به عنوان زبانی که مفیده برای یاد گیری تا چندین سال آینده معرفی میکنن همین قدرت زیادش توی ساخت دستوراتی هست که عملا توی زبان c وجود نداره و برنامه نویس با همون چند دستور ساده زبان c و ابتکار خودش دستورات جدیدی میسازه
          ---------------------------
          توجه کتاب "چگونه با c برنامه بنویسیم " رو برای یاد گیری اصولی و استاندارد زبان c به همه توصیه میکنم این کتاب دو جلده و جلد اول برای c و جلد دوم برای ++c هستش نویسندش "دیتل و دیتل" هستن و مترجم حتما "حسین ابراهیم زاده قلزم" رو بگیرین (حتما از این مترجم باشه)
          خیلی از ریزه کاری هارو گفته و نویسندش توی کاناداست و تسلط خوبی به زبان انگلیسی داشته و خیلی عالی ترجمه کرده
          ای خدا ، من باید از نظر علم از همه برتر باشم، تا مبادا که دشمنان مرا از این راه طعنه زنند. باید به آن سنگدلانی که علم را بهانه کرده و به دیگران فخر میآ*فروشند، ثابت کنم که خاک پای من هم نخواهند شد. باید همه آن تیره دلان مغرور و متکبر را به زانو در آورم، آنگاه خود خاضع ترین و افتاده ترین مرد روی زمین باشم.
          شهید دکتر مصطفی چمران
          اللهم صل علی محمد و ال محمد و عجل فرجهم
          ; C is not for children

          دیدگاه


            #20
            پاسخ : تعریف یه اشاره گر به عنوان آرگومان تابع؟

            نوشته اصلی توسط مهدی رهی
            سلام به همه
            یه توضیح کلی:
            انتقال آرگومان ها با مقدار و با ارجاع
            در زبان c تمام انتقال ها از طریق مقدار منتقل میشه.
            هنگامی که آرگومانی از این طریق ارسال میشه در واقع یک کپی ازش به تابع اسال میشه و توی تابع هر بلایی که سر کپی متغیر بیاریم ، هیچ تاثیری بر اصل متغیر نداره.
            انتقال با ارجاع در زبان C :
            از اونجایی که این شیوه انتقال بسیار پرکاربرده و در زبان c هم این شیوه به صورت یه شیوه مشخص وجود نداره میایم از قدرت بزرگ زبان c استفاده میکنیم و در واقع این دستور رو خود برنامه نویس در زبان c شبیه سازی میکنه
            شیوه:
            شیوش استفاده از همون اشاره گر ها هستش (عملگر آدرس address operator) و (عمگر غیر مستقیم indirect operator)
            نکته:آرایه هابه صورت خودکار از طریق ارجاع منتقل میشن
            نکته: اگر از یه آرایه فقط یه قسمتش رو انتخاب کنیم در این حالت تمام خصلت های یک متغیر غیر آرایه ای رو به خودش میگیره و به صورت انتقال با مقدار ارسال میشه
            ----------------------------
            این که هنوز بعد از گذشت این همه سال از ساخت زبان c باز زبان c رو به عنوان زبانی که مفیده برای یاد گیری تا چندین سال آینده معرفی میکنن همین قدرت زیادش توی ساخت دستوراتی هست که عملا توی زبان c وجود نداره و برنامه نویس با همون چند دستور ساده زبان c و ابتکار خودش دستورات جدیدی میسازه
            ---------------------------
            توجه کتاب "چگونه با c برنامه بنویسیم " رو برای یاد گیری اصولی و استاندارد زبان c به همه توصیه میکنم این کتاب دو جلده و جلد اول برای c و جلد دوم برای ++c هستش نویسندش "دیتل و دیتل" هستن و مترجم حتما "حسین ابراهیم زاده قلزم" رو بگیرین (حتما از این مترجم باشه)
            خیلی از ریزه کاری هارو گفته و نویسندش توی کاناداست و تسلط خوبی به زبان انگلیسی داشته و خیلی عالی ترجمه کرده
            والا تا جایی که میدونم ارجاع برا ++C هستش و نه C
            و تو C یه روش مقدار داریم و یه روش آدرس که آدرس ارسال میشه و اون ور تو یه اشاره گر ذخیره میشه این آدرس
            و ارسال آرایه هم تو C به صورت شاره گر هستش و نه ارجاع، چون نام آرایه رو که مینویسیم، این نام آرایه اشاره به آدرس خونه اول آرایه میکنه، یعنی در واقع داریم آدرس خونه اول آرایه رو میفرستیم و نه یه کپی از آرایه، و لذا اون طرف باید یه اشاره گر تعریف کنیم
            درست میگم دیگه ؟؟؟ حالا تو ++DEV C هم میشه تست کرد این موضوع رو

            راستی این کتاب دیتل اند دیتل که توی نت هستش رایگان هستش یا دزدیه؟ چون فایل PDF اش هستش و عکس نیست و فایل PDF اش فک کنم فقط باید دست نویسنده باشه که حتما خودش تو نت گزاشته...نظرتون چیه؟
            اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

            اگه دوس دارید سریع به جواب برسید :
            1) قبل از پرسیدن سوال، بسرچید.
            2) سوالاتون رو با جزئیات کامل مطرح کنید.

            دیدگاه


              #21
              پاسخ : تعریف یه اشاره گر به عنوان آرگومان تابع؟

              نوشته اصلی توسط md3848
              والا تا جایی که میدونم ارجاع برا ++C هستش و نه C
              و تو C یه روش مقدار داریم و یه روش آدرس که آدرس ارسال میشه و اون ور تو یه اشاره گر ذخیره میشه این آدرس
              و ارسال آرایه هم تو C به صورت شاره گر هستش و نه ارجاع، چون نام آرایه رو که مینویسیم، این نام آرایه اشاره به آدرس خونه اول آرایه میکنه، یعنی در واقع داریم آدرس خونه اول آرایه رو میفرستیم و نه یه کپی از آرایه، و لذا اون طرف باید یه اشاره گر تعریف کنیم
              درست میگم دیگه ؟؟؟ حالا تو ++DEV C هم میشه تست کرد این موضوع رو

              راستی این کتاب دیتل اند دیتل که توی نت هستش رایگان هستش یا دزدیه؟ چون فایل PDF اش هستش و عکس نیست و فایل PDF اش فک کنم فقط باید دست نویسنده باشه که حتما خودش تو نت گزاشته...نظرتون چیه؟
              متن رو درست نخوندیا!
              من صراحتا نوشتم که شیوه ای براش نیست و ما داریم با اشاره گر ها اون رو شبیه سازی میکنیم.
              هر فایلی که توی نت پخش میشه که دلیل نمیشه بگیم خود طرف گذاشته! عکسای خصوصی خیلیا هم پخش شده !

              چند صفحه هستش؟ من جلد یک رو دارم میخونم 1007 صفحه هست
              ای خدا ، من باید از نظر علم از همه برتر باشم، تا مبادا که دشمنان مرا از این راه طعنه زنند. باید به آن سنگدلانی که علم را بهانه کرده و به دیگران فخر میآ*فروشند، ثابت کنم که خاک پای من هم نخواهند شد. باید همه آن تیره دلان مغرور و متکبر را به زانو در آورم، آنگاه خود خاضع ترین و افتاده ترین مرد روی زمین باشم.
              شهید دکتر مصطفی چمران
              اللهم صل علی محمد و ال محمد و عجل فرجهم
              ; C is not for children

              دیدگاه

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