اطلاعیه

Collapse
No announcement yet.

توضیح در رابطه با متعیرهای ورودی تابع (char x,char y,const char *p)

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

    توضیح در رابطه با متعیرهای ورودی تابع (char x,char y,const char *p)

    سلام
    سوالم خیلی ابتدائیه ولی خوب من بلد نیستم
    توی برنامه نویسی به یه تابع برخوردم که متغیرهای ورودی این طوری تعریف شده بود:
    کد:
    (char x,char y,const char *p)
    x , y , p هر سه باید از نوع کاراکتر باشند؟
    هنگام استفاده از تابع به هر سه تا مقدار صحیح دادیم .
    دنيا آنقدر وسيع هست که براي همه مخلوقات جايي باشد پس به جاي آنکه جاي کسي را بگيريم تلاش کنيم جاي واقعي خود را بيابيم

    #2
    پاسخ : توضیح در رابطه با متعیرهای ورودی تابع (char x,char y,const char *p)

    منظور از مقدار صحیح چی هست؟ یعنی عدد صحیح مثل 6 و 10 یا 200 ؟
    اگر منظور شما اینه برداشت شما از عدد صحیح اشتباه هست . در زبان c عدد صحیح با int معرفی میشه و شامل عددی هست بین -32767 تا +32767 و متغیر char عددی بین -127 تا +127 هست . منظور شما از کاراکتر احتمالا" کاراکتر حروف هست مثل 'a'
    در برنامه شما هر کدوم از متغیر های معرفی شده عددی بین -127 تا +127 میتونن داشته باشند

    دیدگاه


      #3
      پاسخ : توضیح در رابطه با متعیرهای ورودی تابع (char x,char y,const char *p)

      نوشته اصلی توسط sorena01 نمایش پست ها
      منظور از مقدار صحیح چی هست؟ یعنی عدد صحیح مثل 6 و 10 یا 200 ؟
      اگر منظور شما اینه برداشت شما از عدد صحیح اشتباه هست . در زبان c عدد صحیح با int معرفی میشه و شامل عددی هست بین -32767 تا +32767 و متغیر char عددی بین -127 تا +127 هست . منظور شما از کاراکتر احتمالا" کاراکتر حروف هست مثل 'a'
      در برنامه شما هر کدوم از متغیر های معرفی شده عددی بین -127 تا +127 میتونن داشته باشند
      مگه این نیست که برای کاراکتر 4 با عدد 4 فرق داره؟
      برای این که عدد 4 چاپ بشه کاراکتر 4 را از 47 کم کنیم؟
      دنيا آنقدر وسيع هست که براي همه مخلوقات جايي باشد پس به جاي آنکه جاي کسي را بگيريم تلاش کنيم جاي واقعي خود را بيابيم

      دیدگاه


        #4
        پاسخ : توضیح در رابطه با متعیرهای ورودی تابع (char x,char y,const char *p)

        نوشته اصلی توسط t_heidari_elc نمایش پست ها
        سلام
        سوالم خیلی ابتدائیه ولی خوب من بلد نیستم
        توی برنامه نویسی به یه تابع برخوردم که متغیرهای ورودی این طوری تعریف شده بود:
        کد:
        (char x,char y,const char *p)
        x , y , p هر سه باید از نوع کاراکتر باشند؟
        هنگام استفاده از تابع به هر سه تا مقدار صحیح دادیم .
        بستگی داره تابع چی باشه (و شما نام تابع رو پاک کردین و نمیشه در این باره چیزی گفت)
        ولی بنظر اینطور میاد که دو آرگومان اول دارن به آدرسی از یک آرایه ی دو بعدی اشاره میکنن که مکانی مشخص در پارامتر سوم هستش
        دو آرگومان اول عدد صحیح هستند (یجور مختصات دو بعدی - و البته اعداد مثبت و یا صفر)
        پارامتر آخر آدرس آرایه ی دوبعدی ای هستش که به تابع داده میشه
        با این اطلاعات بیشتر از این نمیشه نظر داد
        درباره بازه ی اعداد باید به کامپایلر نیز توجه کرد - برای نمونه کامپایلر کدویژن پیشفرض مقدار char رو unsigned در نظر میگیره و همچنین unsigned char رو هم به int تبدیل میکنه که میتونید توی پیکربندی اینها رو تغییر بدید (که البته بهتره همونطور بمونه)
        کاراکترها هم با اعداد صحیح نمایش داده میشن (ینی فقط نمایشگر هستش که این اعداد رو بصورت کاراکتر نشون میده)
        If the wind will not serve, take to the oars

        دیدگاه


          #5
          پاسخ : توضیح در رابطه با متعیرهای ورودی تابع (char x,char y,const char *p)

          نوشته اصلی توسط ASHIT AXAR نمایش پست ها
          بستگی داره تابع چی باشه (و شما نام تابع رو پاک کردین و نمیشه در این باره چیزی گفت)
          ولی بنظر اینطور میاد که دو آرگومان اول دارن به آدرسی از یک آرایه ی دو بعدی اشاره میکنن که مکانی مشخص در پارامتر سوم هستش
          دو آرگومان اول عدد صحیح هستند (یجور مختصات دو بعدی - و البته اعداد مثبت و یا صفر)
          پارامتر آخر آدرس آرایه ی دوبعدی ای هستش که به تابع داده میشه
          با این اطلاعات بیشتر از این نمیشه نظر داد
          درباره بازه ی اعداد باید به کامپایلر نیز توجه کرد - برای نمونه کامپایلر کدویژن پیشفرض مقدار char رو unsigned در نظر میگیره و همچنین unsigned char رو هم به int تبدیل میکنه که میتونید توی پیکربندی اینها رو تغییر بدید (که البته بهتره همونطور بمونه)
          کاراکترها هم با اعداد صحیح نمایش داده میشن (ینی فقط نمایشگر هستش که این اعداد رو بصورت کاراکتر نشون میده)
          دو آرگومان اولی مربوط بخه مختصات هست و بعدی مربوط به یه آرایه یک بعدی.
          مشکل اصلی من اینه که وقتی می تونه بگه از int استفاده کن به جاش char میزاره. این برام گیج کننده است
          و یه سوال دیگه const char کی به کار میاد؟
          دنيا آنقدر وسيع هست که براي همه مخلوقات جايي باشد پس به جاي آنکه جاي کسي را بگيريم تلاش کنيم جاي واقعي خود را بيابيم

          دیدگاه


            #6
            پاسخ : توضیح در رابطه با متعیرهای ورودی تابع (char x,char y,const char *p)

            نوشته اصلی توسط t_heidari_elc نمایش پست ها
            دو آرگومان اولی مربوط بخه مختصات هست و بعدی مربوط به یه آرایه یک بعدی.
            این خودش یه مبحث دیگه س (نحوه ی ذخیره سازی داده ها و آرایه ها روی رم - اگه نیاز شد توضیح میدم. گفتم که منطق این تابع شما به یک مختصات دو بعدی اشاره داره
            نوشته اصلی توسط t_heidari_elc نمایش پست ها
            مشکل اصلی من اینه که وقتی می تونه بگه از int استفاده کن به جاش char میزاره. این برام گیج کننده است
            و یه سوال دیگه const char کی به کار میاد؟
            زیاد به این چیزها نباید حساس باشین. اینها اندکی بهینه سازی ها هستش که برای کاهش مصرف منابع سخت افزاری انجام میشه.
            تفاوت char با int در این هستش که char فضای کمتری رو اشغال میکنه (نصف int) و خب شاید چون آرایه ش بزرگ نیست نیازی هم نبوده int بکار ببره.
            البته تفاوت های دیگه ای هم هستن: (برای AVR)
            اینکه char هشت بیتی هستش و توی یک کلاک پردازش میشه ولی int شانزده بیتی هستش که توی دو چرخه کلاک انجام میشه و سرعت رو کم میکنه
            ولی برای ARM سرعت پردازش مهم نیست. چون ۳۲ بیتی هست هر دوی اونها رو توی یک چرخه کلاک انجام میده و فقط بحث مصرف حافظه مهم میشه.

            const char زمانی بکار میاد که می خوایم مطمئن بشیم تغییری روی داده ی ورودی انجام نمیشه (مثل توابعی که فقط داده هایی رو نمایش میدن)
            If the wind will not serve, take to the oars

            دیدگاه

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