الفرق بين لغتي C , C++

تحميل برنامج على الجهاز المكتبي
  • ارسال إلى Twitter
  • ارسال إلى facebook
  • ارسال إلى google plus
    1. ذكريات باقية
      09-09-2018, 01:45 AM

      الفرق بين لغتي C , C++

      الفرق بين لغتي C , C++


      لغة C هي لغة تصنف كـ لغه متوسطة المستوى وفي بعض الاحيان متدنية المستوى لانها قريبا جدا من المعالج و الذاكره و سريعه جدا وهذه احد مميزات اللغات متدنية المستوى عن اللغات عالية المستوى , صممت لغة C في الاصل لتستخدم للتطوير والعمل على نظام يونكس , سميت بلغة C لان جزئا كبيرا منها مقتبس من لغة B و ظهرت لغة C في اوائل السبعينيات على يد كل من كن تومسون , برايان كرنيغان و دينيس ريتشي.

      لغة C ++ بدأ تطويرها كـ لغة من لغة C على يد بيارن ستروستروب في 1979 اي بعد ظهور لغة C ب حوالي 9 اعوام وسميت ب C++ من باب الدعاية لكي تكون هي الجزء الثاني من لغة C , لاقت لغة C++ شيوعا كبيرا و استخدمت في بناء انظمة التشغيل و التعامل مع البنية الصلبة للحاسوب (المكونات الماديه).

      بعد ان قرأت نبذه عن كل من اللغتين دعونا ندخل في لب الموضوع

      هناك العديد من اللغات بنية من لغة C او يعتبرها البعض قريبا جدا منها مثل C++ , C# ,JAVA وغيرها .

      ان الفرق بين لغة C و لغة C++ بحسب نظري

      اولا : في الحجز الديناميكي , في لغة C نستخدم الدوال malloc and free , اما في C++ نستخدم new and delete .

      ثانيا : في تعريف المتغيرات , في C كنا نعرف المتغيرات في بداية البرنامج , اما في

      C++ نقوم بتعريف المتغيرات متى مااحتجنا لها في اي مكان بالبرنامج .

      ثالثا : عند التصريح عن المتغيرات من نوع struct او enum , كنا نعيد كتابة الكلمة فيC قبل تعريف المتغيرات
      مثل
      struct STRUCT_NAME a,b;


      أما فى ال++C نكتفي ب
      STRUCT_NAME a,b;

      رابعا : اوامر الادخال والاخراج ,في C printf & scanf في C++ cout & cin
      خامسا : دوال التعامل مع الملفات
      سادسا : سطور التعليقات في C كنا نستخدم \**\ اما في C++ فنستخدم \\



      سابعا : لغة C++ اسهل من حيث الاوامر مثل اوامر الحجز الديناميكي مثلا في C type *ptr = (type)malloc(sizeof(type)); لاكن في C ++ type *ptr =new type;


      ثامنا: وهو بنظري اهم فرق بين اللغتي ال Classes

      إضافة لذلك, فاللغتان لغتان مختلفتان, و الشبه بينهما يرجع لأسباب تاريخية, و السبب الرئيسي هو تأثر لغة ++C بلغة C, كما تأثرت عشرات اللغات المستخدمة حاليا في عالم البرمجة و التطوير, لكن ما يميز لغة ++C هو أنها لم تكتفي باتباع نهج لغة C في الـ Syntax و لكنها أكملت مسيرة و مفهوم لغة C, هناك فروق عديدة, فمن ناحية لغة ++C تعتبر ذات أنواع قوية يتم التحقق من العمليات فيما بينها وقت الترجمة كمعظم اللغات الأخرى كـ Java بينما لغة C هي لغة حرة, أي أنها تسمح بكل شيء, و ما يكتبه المبرمج هو ما يحصل بعبارة أخرى, إضافة إلى ذلك, فإن لغة C هي لغة Procedural أو لغة إجرائية, و هذا النوع هو السهل الممتنع في عالم البرمجة, بينما لغة ++C لا تتبع منهجا معينا و لكنها توفر للمبرمج أدوات عدة مناهج يمكن اتباعها, فمثلا يمكنك اتباع طريقة الـ C و هذا ما يحصل مع المبرمجين الجدد في العادة, إضافة إلى ذلك فإنها توفر البرمجة الكائنية, و الـ Generic Programming و كل منهج له أدواته و عدته في ++C و اختر ما يحلو لك, لغة ++C ليست لغة كائنية المنحى OOP و لكنها توفر امكانية تطبيق هذا المنهج,
      إضافة إلى ذلك و هو الأهم, ما الهدف الذي أنشأت لأجله اللغتان ؟


      مثلا لغة Java هي لغة موجهة في الغالب للـ Portable Applications و لذلك تشتهر في عالم الشبكات و تطبيقات هواتف الاندريد كما أعتقد,
      لغة C تعتبر لغة برمجة عامة جدا أي أنها ليست موجهة نحو تطبيق معين في عالم البرمجة و لكنها لغة Very General و في منتصف الطريق بين اللغات عالية المستوى و اللغات منخفضة المستوى,
      لغة ++C ليست عامة جدا كما هو الحال في لغة C, و لكنا صممت لحل مدى واسع من المسائل البرمجية, بالطبع هناك غمار لا تخوضها ++C و تستخدم C في برمجتها في الغالب,

      فالفرق في كيفية حجز الذاكرة بين اللغتين يمكن أن يوضح هذا المفهوم, في C ليس هناك في اللغة نفسها ما لا يمكن تطبيقه دون وجود مكتبات أو وظائف عالية المستوى, أي أن ما تحتاجه لتشغيل برامج لغة C هو معالج و ذاكرة فقط و بالنسبة لـ ++C فيمكن تطبيق هذا الأمر إذا لم نستخدم بعض الطرق التي توفرها اللغة في لبها, أن ننتج برنامجا يعمل كما تعمل برامج لغة C, و مثال ذلك هو الاستغناء عن طريقة حجز الذاكرة في ++C الذي يعتبر من أصل اللغة و لكنه يعتمد على مكتبات خارجية.

      ومثل ما تكلمت في اول التدوينة , لغة C بطبعها لغة متوسطة المستوى (أو فى بعض الاحيان تصنف لغة منخفضة المستوي ), و بالتالي فهي قريبة من المعالج و الذاكرة و سريعة جدا,
      و لكن في لغة ++C زيادة الأداء يكون بطرق أكثر أمانا و تعطي تلك الطرق كفاءة تفوق كفاءة C في أحيان عدة,


      كـ Inlining و الـ MetaProgramming و الـ Templates و اللذان يعتبران أدوات الـ Generic Programming في لغة ++C,
      لن يسعني طبعا الحديث عن هذه الميزات كلها , أعتقد أن Google كفيل بذلك,

      عموما الناحية الوحيدة, التي ينتقدها مناصرو C هي الكائنات في لغة ++C, بالطبع لا تنسى أن برامج عملاقة كتبت بـ ++C كـ Office و غيره, و باستخدام البرمجة الكائنية على ما أعتقد.
      الآن لماذا يحدث هذا البطئ المنشود عند استخدام OOP في لغة ++C هذا يمكن أن يكون مقالا بحاله .

      منقول
      250*300 Second
    2. شاكس
      09-09-2018, 02:17 AM

      رد: الفرق بين لغتي C , C++

      الفرق بين لغتي C , C++


      وانا اترنح بين حنايا الموضوع , داهمني شعور لا لبس فيه اني مثل الاطرش في الزفة ههههه اي والله

      هذا لا يمنع كون الموضوع زاخر بالمعلومات القيمة لمن يفهمها ويستوعبها مو مثل بعض الناس .. احم احم


      شكرا على الموضوع القيم
    3. خفايئ
      09-09-2018, 01:45 PM

      رد: الفرق بين لغتي C , C++

      الفرق بين لغتي C , C++






      ي يعطيك العافية
      موضوع جميل ومعلومات قيمه
      بانتظار جديدك دائما
      تحياتي لك
      وبالتوفيق يارب