اطلاعیه

Collapse
No announcement yet.

دستور gosub

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

    دستور gosub

    سلام دوستان.
    من میخوام ببینم که آیا میشه در روتینی که با دستور gosubرفتیم شرطی قرار بدیم که اگه اون شرط برقرار شد از اون روتینبوسیله دستور goto خارج بشیم و بریم یه جای دیگه برنامه ویا میشه داخل اون روتین از یدستور gosub دیگه استفاده کنیم و بریم یه یه روتین دیگه؟
    وقتی همه نیروهای جسمی و ذهنی متمرکز شوند توانایی فرد برای حل مشکلات به طور حیرت انگیزی چند برابر می شود .
    نرمن وینسنت پیل

    #2
    پاسخ : دستور gosub

    تو هر حلقه تو هر sub می تونی بینهایت goto یا gosub بزاری
    ولی منظورت خوب نرسوندی
    [move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]

    دیدگاه


      #3
      پاسخ : دستور gosub

      به غیر از روتین های مربوط به انتراپتها که باید حتما دستور return رو اجراکنه بقیه هیچ مشکلی نداره .البته در روتین های مربوط به انتراپتها هم میتونی از gosub استفاده کنی ولی باید حتما برگرده به همون روتین
      روزی که درک کردیم همه چیز به خدا تعلق دارد . آن روز .روز طلوع دانش است

      دیدگاه


        #4
        پاسخ : دستور gosub

        نوشته اصلی توسط حامد رحیمی
        تو هر حلقه تو هر sub می تونی بینهایت goto یا gosub بزاری
        ولی منظورت خوب نرسوندی
        آقا حامد منظورمو نمیدونم چطوری برسونم ولی من در برنامه های مختلفی که نگاه کردم توی هیچکدوم ندیدم که وقتی خط برنامه توسط gosub به روتین اجرائی اون میره بعد از اونجا بوسیله دستور goto اونو به قسمت دیگه ای از برنامه ببرن و همچنین ندیدم در داخل روتین gosub از دستور gosub استفاده کنند.
        البته من خودم توی برنامه هام از هر دومورد استفاده میکردم ولی این باعث میشد که بمرور میکرو هنگ کنه و یا ریست بشه و یا دیگه تایمر کار نکنه و به روتینش نره.
        وقتی همه نیروهای جسمی و ذهنی متمرکز شوند توانایی فرد برای حل مشکلات به طور حیرت انگیزی چند برابر می شود .
        نرمن وینسنت پیل

        دیدگاه


          #5
          پاسخ : دستور gosub

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

          دیدگاه


            #6
            پاسخ : دستور gosub

            gosub صدا کردن یک subroutine هست که هر وقت اجرا به اون منتقل میشه بایستی با return به برنامه صدا زننده برگرده. در غیر اینصورت آدرس برگشت درپشته باقی میمونه و کم کم باعث میشه سرریزی پشته رخ بده که این به خودی خود ممکنه مقادیر متغیر های عمومی رو هم خراب کنه. بنا براین قاعدتا بایستی به ازای هر gosub یک return متناظر وجود داشته باشه.

            دیدگاه


              #7
              پاسخ : دستور gosub

              دقیقا من هم همین مشکل را داشتم که وقتی با دستور goto از روتین خارج میشدم میکرو هنگ میکرد با تغییر اون به retun مشکلم حل شد.
              The harder I work, the luckier I get

              دیدگاه


                #8
                پاسخ : دستور gosub

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

                دیدگاه

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