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





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









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









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





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

صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 20
  1. #1
    2012/12/30
    بوشهر
    3,198
    1,100

    C یا C++؟ کدوم رو انتخاب کنم؟

    سلام
    خب بعد از ایجاد این تاپیک من متوجه یه مسئله جدید برای تازه کارها شدم:

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    به نظر مبتدی ها و تازه کارها اول کار براشون این سوال پیش میاد که C یا C++ رو انتخاب کنن. البته اونایی که متوجه میشن که بین C و C++ تفاوت هایی وجود داره این سوال براشون پیش میاد. اگه هم توی گوگل جستجو کنید سایت های متفاوتی با این موضوع می بینید. من بعضی هاشون رو نگاه کردم. می خواستم اگه کسی نظر خوبی داده بذارم براتون که بخونید ولی مطلب خوبی پیدا نکردم. خیلی از مطالبی که پیدا کردم هم توش افراد تازه کار یا نا آشنا نظر داده بودن. من توی این تاپیک سعی میکنم آب پاکی رو روی دستتون بریزم.

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

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    (شی گرائی) هم بهش اضافه شده( البته یه مقدار اون قسمت های C در C++ تغییر هم کرده). اگه پیج ویکی پدیا رو بخونید نوشته:

    ...ویژگی*های برنامه نویسی شی گرا، پیچیدگی کم، هزینه کم، امکان گسترش سریع برنامه با خطای کمتر نسبت به سایر پارادایم*های برنامه نویسی است.
    مسئله ای که وجود داشت این بود که روزی که کامپیوترها و زبان ها بوجود اومدن و یه سری کارها رو ساده کردن، نیاز ها و خواسته ها کوچیک بود. با گذشت زمان، روز به روز انتظار از این کامپیوتر ها و زبان ها بیشتر میشد. کامپیوترها قوی تر و با حافظه بیشتر تولید میشد تا نیاز ها رو برآورده کنه. خب برنامه ها هم باید بزرگتر میشد تا نیازهای بیشتری رو برآورده کنه. دانشمندان و محققانی که کنار کدنویس ها بودن متوجه شدن که این زبان های ساده که شی گرائی نداره(مثلا C) برای برنامه های بزرگتر مناسب نیستن. در واقع با بزرگ شدن برنامه ها که با این زبان ها نوشته شده بودن، پیچیدگی زیاد میشد و هزینه های زیادی خصوصا از لحاظ وقت می گرفت. اینا میان شی گرائی رو ایجاد میکنن. اینکه شی گرائی چطور کدنویسی رو ساده میکنه و هزینه ها رو کم میکنه بماند. بعدا اگه درگیرش شدید خودتون میفهمید. من برای شما که آشنایی ندارید هر چقدر بگم بازم متوجه نمیشید.
    پس تا اینجا هر دو زبان خوب هستن ولی C++ امکانات بیشتری داره و کار شما رو خصوصا در پروژه های بزرگتر ساده تر میکنه و بهتره بگم کمکتون میکنه. البته یه چیزی بگم، نحوه کدنویسی شی گرائی با

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    های دیگه متفاوته و برنامه ای که با C می نویسید(با پارادایم

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    )، اگه بخوایید با شی گرائی C++ بنویسید متفاوته. البته همون برنامه رو در C++ بدون شی گرائی هم می تونید شبیه C بنویسید. ولی استفاده از شی گرائی یه ویژگی هستش که استفاده ازش همون طور که گفته شد مفیده.
    خب الان که مقداری با C و C++ آشنا شدید و متوجه شدید که چه کم و کاستی هایی دارن بریم سراغ وضعیت فعلی دنیای امبدد. یعنی جایی که شما باید توش کار کنید و پول در بیارید.
    اگه بخوام در مورد وضعیت فعلی دنیای امبدد توضیح بدم، در یک کلمه میگم که واقعا بزرگ شده و داره توسعه پیدا میکنه و هر روز هم نیاز و خواست مشتری ها داره بیشتر میشه. میکروها قوی تر میشن و حافظه ها شون بیشتر میشه و مینی کامپیوتر ها هم به این قضیه اضافه شده. (مثلا اگه میخوایید یه نمونه رو ببینید، برید روند تولید میکروهای با هسته آرم شرکت های ST و یا تگزاس یا NXP رو توی سایتشون ببینید) این یعنی پیچیدگی بیشتر برنامه ها و کدنویسی سنگین. یکی از دوستان میگفت که این روزها نوشتن شصت هزار خط کد بصورت میانگین یه امر ساده در دنیای امبدد و کامپیوتر شده. خب، فکرش رو بکنید که بخوایید این حجم از کدنویسی رو با C انجام بدید. چرا با C++ ننویسید؟ در حالی که شی گرائی هم داره و برای این کار بسیار مناسب هستش. من با چند کدنویس و برنامه نویس حرفه ای C که صحبت کردم متوجه شدم که دارن C++ رو یاد میگیرن. خب انتخاب و راه درستی هستش. چرا این کار رو نکنن. من خودم جزو اون افراد هستم که دارم این کار رو میکنم. دلایلش هم معلومه. بالا گفتم. شما چه برنامه های کوچیک و چه برنامه های بزرگ رو با شی گرائی می تونید بنویسید. شرکت ها هم که استخدام میکنن اگه از شما بخوان که با C براشون کدنویسی کنید، بدون مشکل می تونید براشون بنویسید و اگه یه شرکتی هم ازتون بخواد با شی گرائی C++ بنویسید بازم می تونید. در واقع شما هر دو رو بلد هستید. حتی می تونید از کدهای C در کدهای C++ هم استفاده کنید. می تونید مخلوطشون کنید. تفاوت ها رو هم می تونید با بررسی استانداردهای هر دو زبان متوجه بشید و برای کدنویسی ازشون استفاده کنید.

    پس اگه از من بپرسید که کدوم رو انتخاب کنید، من میگم C++

    یه سوال: بعضی ها میگن زبان C++ حجم زیادی از حافظه رو میگیره. این واقعیت داره؟
    در جواب این سوال باید بگم که ای خدا چیکار نکنه با اون کسی که این حرف رو بین امبدد کارها انداخت. ظاهرا یه نفر که علم کافی نداشته بین بقیه این حرف رو میزنه و بقیه هم که یا تازه وارد بودن یا کدنویس های ناوارد این حرف رو بدون اثبات قبول میکنن و بین ایرانی ها جا می اندازن. این حرف مدتهاست که گفته میشه و هیچ کسی ثابتش نکرده. توی کدنویسیش که هیچ کسی ثابتش نکرده. اگه بحث کتابخونه های آماده C++ هم باشه من که ندیدم و اگه هم مورد خاصی باشه خودتون می تونید تابعش رو بنویسید و ازش استفاده کنید تا حجمی نگیره. البته این یه ترفند هستش و هنوز این حرف ها در مورد C++ ثابت نشده. اگه هم باشه، توی C هم باید موارد مشابه باشه و این ربطی به زبان برنامه نویسی نداره.

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

    در هر صورت، در آخر این تاپیک باید بگم که انتخاب با شما هستش ولی با این تفاسیر و وضعیت فعلی باز هم توصیه میکنم که بچسبید به C++
    ویرایش توسط روح الامین : 2018/02/02 در ساعت 18:59
  2. #2
    2009/10/25
    تهران
    414
    24

    پاسخ : C یا C++؟ کدوم رو انتخاب کنم؟

    نقل قول نوشته اصلی توسط روح الامین

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    یه سوال: بعضی ها میگن زبان C++ حجم زیادی از حافظه رو میگیره. این واقعیت داره؟
    در جواب این سوال باید بگم که ای خدا چیکار نکنه با اون کسی که این حرف رو بین امبدد کارها انداخت. ظاهرا یه نفر که علم کافی نداشته بین بقیه این حرف رو میزنه و بقیه هم که یا تازه وارد بودن یا کدنویس های ناوارد این حرف رو بدون اثبات قبول میکنن و بین ایرانی ها جا می اندازن. این حرف مدتهاست که گفته میشه و هیچ کسی ثابتش نکرده. توی کدنویسیش که هیچ کسی ثابتش نکرده. اگه بحث کتابخونه های آماده C++ هم باشه من که ندیدم و اگه هم مورد خاصی باشه خودتون می تونید تابعش رو بنویسید و ازش استفاده کنید تا حجمی نگیره. البته این یه ترفند هستش و هنوز این حرف ها در مورد C++ ثابت نشده. اگه هم باشه، توی C هم باید موارد مشابه باشه و این ربطی به زبان برنامه نویسی نداره.

    دوستان یادتون باشه که هر کسی رو بعنوان کارشناس یک موضوع نپذیرید و حرفش رو قبول نکنید. خصوصا تو کشور ما و در مورد کدنویسی که کدنویس خوب و با تجربه زیاد نداریم.
    سلام دوست عزیز
    ببینید من الان بالغ بر ۱۵ ساله که دارم برنامه نویسی میکنم
    برنامه نویسی حرفه ای رو هم که ازش پول در می آوردم از سال ۸۹ شروع کردم یعنی ۷ ساله حرفه ای سی و سی پلاس پلاس کارم

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

    به عنوان یک نمونه عملی بحوام عرض کنم من الگوریتم های رمز نگاری رو خیلی با سی و سی پلاس پلاس پیاده سازی میکنم. وقتی یک الگوریتم رمزنگاری که با سی نوشته شده رو میدیم به کامپایلر سی پلاس پلاس تا همون کد رو کامپایل کنه یه چیزی حول و حوش دو تا سه برابر حجم آبجکت کدش میشه و همین مقدار هم به نظر زمانی افت داره
    بنابراین میشه واقعا ادعا کرد که سی خیلی سریعتر از سی پلاس پلاس هستش. ولی این سرعت بالاتر با یک هزینه همراهه و اون هم اینه که خود خدابیامرز ریچی هم اعتقاد داشت با سی نمیشه پروژه های بزرگ انجام داد فقط برای کارهای کوچیک و ماژول های ساده خوبه. تو کار پیشرفته چون namespace نداره تابع overload رو نمیشناسه و Object Oriented نیست عملا نمیشه باهاش کارهای بزرگ انجام داد
  3. #3
    2012/12/30
    بوشهر
    3,198
    1,100

    پاسخ : C یا C++؟ کدوم رو انتخاب کنم؟

    نقل قول نوشته اصلی توسط hamidreza.nayeri

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    سلام دوست عزیز
    ببینید من الان بالغ بر ۱۵ ساله که دارم برنامه نویسی میکنم
    برنامه نویسی حرفه ای رو هم که ازش پول در می آوردم از سال ۸۹ شروع کردم یعنی ۷ ساله حرفه ای سی و سی پلاس پلاس کارم

    این حرفی که زده میشه متاسفانه حقیقت داره و چیزی نیست که بگیم از روی بی اطلاعی و چه بوده. آبجکت فایلی که سی درست میکنه تقریبا یک دوم و شاید حتی یک سوم آبجکت فایلیه که سی پلاس پلاس از همون برنامه درست میکنه.
    بنابراین واقعا میشه ادعا کرد که کد سی پلاس پلاس هم حجم بالاتری رو میگیره و هم سرعتش پایین تره...
    سلام آقای نییری(فامیلی تون رو درست نوشتم؟)
    من فکر کنم شما رو بشناسم. شما هم مثل من قدیمی هستید. فکر کنم قبلا شما رو توی ECA دیدم. شایدم اشتباه میکنم. من این فامیلی رو احساس میکنم خیلی شنیدم. اگه همون کاربر قدیمی هستید باید بگم که از ملاقات دوباره شما خوشبختم.
    آقای نییری من شما رو نمی شناسم زیاد ولی چند تا سوال ازتون می پرسم، جسارتا.
    اول اینکه شما مطمئن هستید که با کامپایلری که کار میکنید آشنایی کامل دارید؟
    کامپایلر شما قدیمی نیست؟ چقدر از قدرت کامپایلرتون مطمئن هستید؟

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


    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    سوال کننده گفته معمولا کدهای hello world که میسازه حدودا 16کیلوبایت حجم داره و همین کد با C++ میشه 470کیلو. کاربرها براش توضیح دادن که چرا اینطوری میشه. یه کاربری با عنوان کاربری جری کوفین(فرد تقرییا قابل اعتمادی هستش برای استناد) توی این پست گفته که همین برنامه رو با فلگ های متفاوت در MS VC++ کامپایل کرده که از ~8K تا ~110K حجمی بوده که گرفته.

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    یعنی از میانگین C هم حتی کمتر گرفته!(8کیلو کجا و 16کیلو کجا) من خودم با کیل که کد می نویسم و با سطوح متفاوت کامپایل میکنم واقعا گاهی وقتا کامپایلر اینقدر دستکاری میکنه که حتی برنامه کار نمیکنه گاهی وقتا و دوباره باید خودم به کامپایلر بفهمونم که کجا رو دست نزنه یا یه روش دیگه استفاده کنم. من الان یه مقدار وقتم گرفته هستش و کامپایلر ندارم روی سیستمم وگرنه نشونتون میدادم. من دفترچه کامپایلرم رو تا حدودی خوندم. حتی ورژن کامپایلرها هم در برخی موارد برای کامپایل کردن فرق میکنن. تو اون لینک هم گفته. دیگه چه رسد به کامپایلرهای متفاوت.

    شما خودت می تونی یه نمونه کد بذاری و نشونمون بدی؟ با مدهای مختلف تست کنین و بذارید. شاید من و شما نتیجه خوبی بگیریم. فقط قبلش من رو مطمئن کنید که تسلط کافی روی کامپایلرتون دارید.
  4. #4
    2009/10/25
    تهران
    414
    24

    پاسخ : C یا C++؟ کدوم رو انتخاب کنم؟

    نقل قول نوشته اصلی توسط روح الامین

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    سلام آقای نییری(فامیلی تون رو درست نوشتم؟)
    من فکر کنم شما رو بشناسم. شما هم مثل من قدیمی هستید. فکر کنم قبلا شما رو توی ECA دیدم. شایدم اشتباه میکنم. من این فامیلی رو احساس میکنم خیلی شنیدم. اگه همون کاربر قدیمی هستید باید بگم که از ملاقات دوباره شما خوشبختم.
    آقای نییری من شما رو نمی شناسم زیاد ولی چند تا سوال ازتون می پرسم، جسارتا.
    اول اینکه شما مطمئن هستید که با کامپایلری که کار میکنید آشنایی کامل دارید؟
    کامپایلر شما قدیمی نیست؟ چقدر از قدرت کامپایلرتون مطمئن هستید؟

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


    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    سوال کننده گفته معمولا کدهای hello world که میسازه حدودا 16کیلوبایت حجم داره و همین کد با C++ میشه 470کیلو. کاربرها براش توضیح دادن که چرا اینطوری میشه. یه کاربری با عنوان کاربری جری کوفین(فرد تقرییا قابل اعتمادی هستش برای استناد) توی این پست گفته که همین برنامه رو با فلگ های متفاوت در MS VC++ کامپایل کرده که از ~8K تا ~110K حجمی بوده که گرفته.

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    یعنی از میانگین C هم حتی کمتر گرفته!(8کیلو کجا و 16کیلو کجا) من خودم با کیل که کد می نویسم و با سطوح متفاوت کامپایل میکنم واقعا گاهی وقتا کامپایلر اینقدر دستکاری میکنه که حتی برنامه کار نمیکنه گاهی وقتا و دوباره باید خودم به کامپایلر بفهمونم که کجا رو دست نزنه یا یه روش دیگه استفاده کنم. من الان یه مقدار وقتم گرفته هستش و کامپایلر ندارم روی سیستمم وگرنه نشونتون میدادم. من دفترچه کامپایلرم رو تا حدودی خوندم. حتی ورژن کامپایلرها هم در برخی موارد برای کامپایل کردن فرق میکنن. تو اون لینک هم گفته. دیگه چه رسد به کامپایلرهای متفاوت.

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

    ببین دوست عزیز من کامپایلرم رو میشناسم حالا اگر نگم خوب ولی بلدم کانفیگش کنم.من از کامپایلر gcc استفاده میکنم که یکی از خوش دست ترین و بهترین کامپایلر هایی است که برای سی و سی پلاس پلاس نوشته شده.
    اون موضوع کنار گذاشتن سیمبل ها رو بنده خیلی وقته دارم ازش استفاده میکنم. میتونم بگم بنده برنامه helloworld رو با gcc کامپایل کردم و من ۶ کیلوبایت تحویل گرفتم یعنی حدود همون C++ ولی دوست عزیز این برنامه معیار نیست چون هیچ فانکشنالیتی بخصوصی نداره
    اگر درست کامپایل بشه با فلگ های مناسب کامپایلر هم سی و هم سی پلاس پلاس باید یه حجم بدن تو این برنامه. ولی در دنیای واقعی برنامه ها واقعا فرق دارن با هم یک سری فانکشنالیتی هایی استفاده میشه ازشون که اونجا دیگه این مطلب صادق نیست و حجم آبجکت کد واقعا عوض میشه.
    من برای مثال بحث رمز نگاری رو خدمت تون عرض کردم دیگه. ببینید سی در واقعیت یه مقداری سطح پایین تر از سی پلاس پلاس هستش. شما امکاناتی تو سی دارید که توی سی پلاس پلاس ندارید مثلا امکان ست یا ریست کردن یک بیت در یک بایت توی سی وجود داره ولی من توی سی پلاس پلاس ندیدم. نمیگم نیست بلکه میگم من ندیدم

    علی ای حال من فقط تجربه شخصیم رو نوشتم. اگر مطلب معتبر علمی در این خصوص دارید لطف کنید اشتراک بگذارید ما هم یه چیزی یاد بگیریم ضمنا به stackoverflow و امثال این سایت ها بهتره خیلی ریفر ندید اینا غالبا برنامه نویس کم تجربه ان و خودشون هم خیلی چیزها رو بلد نیستن. یه مقدار هم فاشیستن کافیه باهاشون یه ذره کل کل کنی میذارنت کنار از سایت کلا.
  5. #5
    2012/12/30
    بوشهر
    3,198
    1,100

    پاسخ : C یا C++؟ کدوم رو انتخاب کنم؟

    نقل قول نوشته اصلی توسط hamidreza.nayeri

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    من خیلی ساله تو این انجمن عضوم ولی یه چند سالی بود دیگه نمیومدم
    الان هم به نظرم میرسه بچه ها خیلی بی انگیزه شدن. قدیم من یادمه وقتی که میومدیم جواب بدیم تو حین نوشتن پاسخ دو سه نفری جواب میدادن الان متاسفانه هر سوالی یکی دو روز طول میکشه تا یه جواب اولیه بهش داده بشه...
    بله، همین طور بود. منم یادمه. اصلا بچه ها فعال بودن نه فقط کاربر.
    نقل قول نوشته اصلی توسط hamidreza.nayeri

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    ...ببین دوست عزیز من کامپایلرم رو میشناسم حالا اگر نگم خوب ولی بلدم کانفیگش کنم.من از کامپایلر gcc استفاده میکنم که یکی از خوش دست ترین و بهترین کامپایلر هایی است که برای سی و سی پلاس پلاس نوشته شده.
    اون موضوع کنار گذاشتن سیمبل ها رو بنده خیلی وقته دارم ازش استفاده میکنم. میتونم بگم بنده برنامه helloworld رو با gcc کامپایل کردم و من ۶ کیلوبایت تحویل گرفتم یعنی حدود همون C++ ولی دوست عزیز این برنامه معیار نیست چون هیچ فانکشنالیتی بخصوصی نداره
    اگر درست کامپایل بشه با فلگ های مناسب کامپایلر هم سی و هم سی پلاس پلاس باید یه حجم بدن تو این برنامه. ولی در دنیای واقعی برنامه ها واقعا فرق دارن با هم یک سری فانکشنالیتی هایی استفاده میشه ازشون که اونجا دیگه این مطلب صادق نیست و حجم آبجکت کد واقعا عوض میشه.
    من برای مثال بحث رمز نگاری رو خدمت تون عرض کردم دیگه. ببینید سی در واقعیت یه مقداری سطح پایین تر از سی پلاس پلاس هستش...
    بنده جرات نمیکنم بگم که کامپایلرم خوش دست هستش یا یکی از بهترین ها هستش چون بقیه رو امتحان نکردم(همه شون).
    بله، Hello world معیار نمیشه. حتی بقیه شون هم به این راحتی معیار نمیشه. بحث فانکشنالیتی نیست. اصلا ممکنه با پارادایم شی گرایی طور دیگه ای کامپایل کنه و با پارادایم رویه ای هم یه طور دیگه. یه جا ممکنه C++ کمتر بشه و جای دیگه با C
    به همین دلیل هستش که من هم به این راحتی حرف شما رو قبول نمیکنم. تا به اینجا هر چی من گذاشتم رو به خودم تحویل دادید و ثابت نکردید. جسارتا فقط حرف های عجیب زدید.

    نقل قول نوشته اصلی توسط hamidreza.nayeri

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    ...شما امکاناتی تو سی دارید که توی سی پلاس پلاس ندارید مثلا امکان ست یا ریست کردن یک بیت در یک بایت توی سی وجود داره ولی من توی سی پلاس پلاس ندیدم. نمیگم نیست بلکه میگم من ندیدم...
    هیچ مشکلی در کار با بیت ها در C++ وجود نداره. چه برای یه بایت و چه بقیه. شما کدوم ست یا ریست کردن توی C منظورتون هستش که توی C++ ندیدین؟
    هر چند که دوباره میگم هیچ مشکلی وجود نداره.

    نقل قول نوشته اصلی توسط hamidreza.nayeri

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    ...علی ای حال من فقط تجربه شخصیم رو نوشتم. اگر مطلب معتبر علمی در این خصوص دارید لطف کنید اشتراک بگذارید ما هم یه چیزی یاد بگیریم ضمنا به stackoverflow و امثال این سایت ها بهتره خیلی ریفر ندید اینا غالبا برنامه نویس کم تجربه ان و خودشون هم خیلی چیزها رو بلد نیستن. یه مقدار هم فاشیستن کافیه باهاشون یه ذره کل کل کنی میذارنت کنار از سایت کلا.
    من میگم هیچ کسی ثابت نکرده. هر کسی هم چیزی گفته در حد حرف بوده.
    سایت استک بسیار سایت خوب و معتبری هستش. هیچ چیزی به صورت مطلق خوب نیست ولی این استک فوق العاده عالی هستش. خصوصا تو کدنویسی
    برای پرسش و پاسخ بهترین هستش. برنامه نویس های عالی توش هستن. اصلا تعجب میکنم که این حرف رو میزنید. من با کارمندهای گوگل هم توش صحبت کردم. حقیقتا با سواد بودن. معمولا ایرانی ها زیاد توی این سایت ها دوام نمی یارن چون با این محیط ها و فرهنگ غرب آشنایی ندارن. به موقعش باید تند شد و به موقعش باید آروم و مودب بود.
    اگه شما رو بن(ban) کردن که نباید ناراحت بشید. من سالهاست که توش حضور دارم. واقعا عالیه.
  6. #6
    2014/01/13
    114
    91

    پاسخ : C یا C++؟ کدوم رو انتخاب کنم؟

    دوستان عزیز ، منهم میخواستم نظرم رو در این مورد بگم

    اینکه گفته میشه برنامه سی پلاس پلاس حجم بیشتری داره ، البته درسته
    در شی گرایی ما جدول توابع مجازی داریم ، قبل از احضار تابع باید
    عملیاتی انجام بشه تا مشخص بشه کدوم تابع باید اجرا بشه

    کلا ، سی پلاس پلاس سرباره بیشتری داره و حجم فایل اجرایی بیشتره
    ولی این لزوما به این معنی نیست که همواره سرعت برنامه سی پلاس پلاس
    کمتر از برنامه سی هستش

    اگه ما یه تابع در سی پلاس پلاس بنویسیم که تابع معمولی باشه و نه تابع مجازی
    و توش هم عملیات ریاضی و فراخوانی توابع معمولی باشه ، دلیلی نمیبینم که کمپایلر
    سی پلاس پلاس ، حجم کد بیشتری برای آن ایجاد کند !

    تا موقعی که توابع ما در حد زبان سی باشند و از مفاهیم شی گراییی در آنها
    استفاده نشده باشد، عینا مثل یک تابع سی معمولی کمپایل و اجرا خواهند شد

    مثلا میخوام بگم اگه شما دو تا متغیر صحیح را با هم جمع کنید
    آیا مترجم سی پلاس پلاس ، آن را به اسمبلی حجیم تری ترجمه میکند ؟
    آیا یک فراخوانی به تابع غیر مجازی ، کد بیشتری در سی پلاس پلاس تولید میکند ؟

    نتیجه اینکه میتوان برنامه را به زبان سی پلاس پلاس نوشت ولی
    آن توابعی که زیاد فراخوانی میشوند و سرعت اجرا برایشان مهم است
    باید بدون مفاهیم شی گرایی نوشته شوند و مطمعنا سرعت اجرا و فراخوانی آنها باید معادل همان زبان سی باشد
  7. #7
    2009/10/25
    تهران
    414
    24

    پاسخ : C یا C++؟ کدوم رو انتخاب کنم؟

    نقل قول نوشته اصلی توسط روح الامین

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

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


    اما برگردیم به موضوع نخ خودمون. ببینید من برای نمونه یک تابع رو که اصلا مفاهیم حتی سی پلاس پلاس هم توش نداشت و به زبان سی نوشته شده بود رو با کامپایلر gcc کامپایل کردم. این کامپایلر قابلیت این رو داره که هم برای سی کامپایل کنه هم برای سی پلاس پلاس.
    من با همین کامپایلر و با فلگ های مروبط به سیمبل ها و اپتیمایزیشن یکسان، هم برای سی کامپایل کردم هم برای سی پلاس پلاس. اینی که دارم بهتون میگم تجربه است میتونید نپذیرید ولی من با تجربه دیدم که کدی که برای سی ایجاد شد هم حجمش کمتر بود (حدودا یک سوم) هم سرعت اجراش خیلی بیشتر بود.

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

    به عنوان یک نمونه عملی.
    من تابع md4 رو با فلگ های یکسان و شرایط مشابه کامپایل کردم این هم یک نتیجه عملی

    کد:
    -rw-rw-r-- 1 hamid hamid 4112 Feb  4 17:08 md4.c.o
    -rw-rw-r-- 1 hamid hamid 4176 Feb  4 17:10 md4.cpp.o

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

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    تا موقعی که توابع ما در حد زبان سی باشند و از مفاهیم شی گراییی در آنها
    استفاده نشده باشد، عینا مثل یک تابع سی معمولی کمپایل و اجرا خواهند شد
    تفاوت های سی و سی پلاس پلاس فقط در شیئ گرایی و اینها نیست. سی پلاس پلاس کلا جور دیگری کد رو هندل میکنه. علتش این است که امکانات اضافه ای داره که سی نداره لذا باید به شکل دیگری کد رو هندل کنه. از نحوه ورود به تابع main شما در نظر بگیرید تا نحوه terminate کردن نرم افزار و ....
    ویرایش توسط hamidreza.nayeri : 2018/02/04 در ساعت 16:22
  8. #8
    2014/01/13
    114
    91

    پاسخ : C یا C++؟ کدوم رو انتخاب کنم؟

    نقل قول نوشته اصلی توسط hamidreza.nayeri

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    همون طوری که میبینید حجم آبجکت کد سی حدودا ۶۴ بایت کمتر از آبجکت کد سی پلاس پلاس شده.
    جحم کل برنامه سی پلاس پلاس که مشخصه ، حتما بیشتر میشه

    شما که به gcc دسترسی دارید ، میتونید این ازمایشی که میگم رو انجام بدین:
    یک تابع خیلی ساده رو در نظر بگیرید ، ترجمه اسمبلی آن را در هر دو حالت نشان دهید
    مثلا تابع زیر را در نظر بگیرید:

    کد:
    int  x,y,z;
    void foo()
    {
     x=5;
     y=6;
     z=x+y;
    }

    ترجمه اسمبلی این تابع (فقط این تابع) را در دو حالت سی و سی پلاس پلاس را برایمان بگذارید
    به نظر من هیچ فرقی نباید داشته باشند
  9. #9
    2009/10/25
    تهران
    414
    24

    پاسخ : C یا C++؟ کدوم رو انتخاب کنم؟

    نقل قول نوشته اصلی توسط x935418

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

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

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

    با این فلگ ها هم کامپایل کردم
    کد:
    -Os -s
    که تمامی نمادها رو بر میداره و کد رو برای حجم اپتیمایز میکنه اگر برای حجم اپتیمایز نشه سایزها میشن

    کد:
    -rw-rw-r-- 1 hamid hamid 4960 Feb  4 18:07 md4.c.o
    -rw-rw-r-- 1 hamid hamid 5040 Feb  4 18:07 md4.cpp.o
    همون طوری که میبینید واقعا کد اجرایی که توسط یک کامپایلر و برای دو زبان ایجاد شده کاملا با هم فرق داره. مطمئنا اگر اسمبلیش تولید بشه هم باز فرق میکنه چون آبجکت کد مخصوصا اگر سیمبل و امکانات دیباگینگ نداشته باشه همون کدی است که روی پردازنده اجرا میشه به عبارت دیگه اسمبل شده زبان اسمبلی است

    و برای یک نمونه دیگه

    کد:
    -rw-rw-r-- 1 hamid hamid 31344 Feb  4 18:16 serpent.c.o
    -rw-rw-r-- 1 hamid hamid 35896 Feb  4 18:27 serpent.cpp.o
    ببینید این مربوط به یک تابع خیلی پیچیده تر به اسم Serpent هستش. میبینید که این دفعه یک چیزی حدود ۴ کیلوبایت تفاوت سایزشون هست. هر دو هم از یک فایل سی به وجود اومدن فقط زبان کامپایلشون با هم فرق داشته
    ضمنا من فقط در مورد سایز قضاوت نمیکنم من این تابع رو مخصوصا ازش بنچ مارک هم گرفتم واقعا آبجکت کدی که با سی کامپایل شده بود به مراتب سریع تر از آبجکت کد سی پلاس پلاس اجرا میشد. این رو نمیشه منکر شد که برنامه هایی که با سی نوشته میشن بنا به دلایلی سریع تر از برنامه های سی پلاس پلاس اجرا میشن.

    این قسمت هم جداول مربوط به نماد توابع هر دو آبجکت فایل هست

    کد:
    [hamid@localhost test]$ nm serpent.c.o 
    0000000000001f2e T blockDecrypt
    0000000000001ed3 T blockEncrypt
                     U __isoc99_sscanf
    0000000000000000 T makekey
    0000000000006d10 T serpent_convert_from_string
    0000000000006f3a T serpent_convert_to_string
    0000000000004581 T serpent_decrypt
    0000000000001f89 T serpent_encrypt
                     U sprintf
                     U strcat
                     U strlen
                     U strncpy
    
    [hamid@localhost test]$ nm serpent.cpp.o 
                     U sprintf
                     U sscanf
    0000000000001fdf T _Z12blockDecryptP11keyInstancePhiS1_
    0000000000001f89 T _Z12blockEncryptP11keyInstancePhiS1_
    0000000000004f76 T _Z15serpent_decryptPjS_PA4_j
    0000000000002035 T _Z15serpent_encryptPjS_PA4_j
    0000000000008084 T _Z25serpent_convert_to_stringiPjPc
    0000000000007e61 T _Z27serpent_convert_from_stringiPcPj
                     U _Z6strcatPcS_
                     U _Z6strlenPKc
    0000000000000000 T _Z7makekeyP11keyInstanceiPc
                     U _Z7strncpyPcPKcj
    ببینید همون طور که میبینید توابع سی پلاس پلاس حجم بیشتری میگیره نوشتن اسمشون داخل فایل ولی این اختلاف به ۴ کیلو بایت واقعا نمیرسه
    این نشون میده خود کد اجراییش بیشتره
    ویرایش توسط hamidreza.nayeri : 2018/02/04 در ساعت 17:43
  10. #10
    2012/12/30
    بوشهر
    3,198
    1,100

    پاسخ : C یا C++؟ کدوم رو انتخاب کنم؟

    @

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    @

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    نه! یه جای کار میلنگه! آقای نیری این کامپایلر شما داره یه رفتاری از خودش نشون میده که قابل قبول نیست. من بعدا codelite رو نصب میکنم و یه کامپایلر هم کنارش نصب میکنم. باید خودم دوباره بررسی کنم. خصوصا اینکه میگید یه کد مشابه برای C و C++ حجم های متفاوتی داره.
صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 20

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

  1. کدوم PLC ?
    توسط humauon در انجمن PLC
    پاسخ: 1
    آخرين نوشته: 2016/06/12, 22:54
  2. پاسخ: 1
    آخرين نوشته: 2016/04/17, 01:05
  3. کدوم آرم ،کدوم برد آموزشی و چرا؟
    توسط abolfazlk873 در انجمن پروسسورهای ARM
    پاسخ: 2
    آخرين نوشته: 2013/12/16, 09:23
  4. پاسخ: 1
    آخرين نوشته: 2013/06/08, 19:49
  5. انتخاب يک آمپلي فاير خوب (کدوم بهتره ؟) :wow:
    توسط maziyar123 در انجمن مدارات صوتي
    پاسخ: 16
    آخرين نوشته: 2011/07/16, 23:29

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

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

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

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

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