أهلا ومرحبا بكم مرة أخرى.
في هذه المحاضرة أريد للحديث عن بعض الموضوعات الأخرى
التي يمكنك دراستها.
نحن في الأساس ننهي الفصل الدراسي.
نحن نختتمها.
ولذا لم نحصل عليه لتغطية كل شيء.
من الواضح أنها فئة المبتدئين.
لذلك هناك الكثير من التقدم الموضوعات التي يمكنك
مواصلة دراستها من أجل ج حتى تصبح حقًا رائع في البرمجة c ، وأردت فقط أن
أذكر اثنين من هؤلاء.
لذا أولاً ، لم نفعل ذلك الدخول في محارف الكتابة.
كنت أتمنى أن يكون لدي تحدثت عن ذلك ، لكنها
أكثر من مفهوم متقدم.
تحدثنا عن التعداد.
والتعداد طريقة خلق نوع خاص بك.
لكن على وجه التحديد في c ، هناك كلمة أساسية تسمى typedef ويمكنك إنشاء أنواع
البيانات الخاصة بك.
هذا مفيد جدا ، وأكثر بمفهوم متقدم.
يمكنك بالتأكيد تعلم المزيد عن ذلك.
هناك الكثير من المعلومات حول المعالج المسبق الذي يمكنك التعرف
عليه ، وتحديداً تسلسل السلسلة.
تذكر المعالج الذي يعمل قبل المترجم.
تعلمنا عن بيان محدد.
لقد تعلمنا عن شيئين آخرين هنا وهناك ، ولكن المعالج يمكن أن يكون
قسمًا آخر كاملًا به الكثير من المعلومات حول هذا الموضوع.
يمكنك استخدامه في الأساس ل تحسين الكثير من التعليمات البرمجية الخاصة بك ، بحيث يمكنك
تشغيلها مسبقًا.
يمكنك القيام بوظائف مضمنة التي تعمل في المعالج ، كل مجموعة
من المفاهيم الجميلة.
هناك الكثير عن النجوم الفارغة.
النجوم الفارغة ، تذكر ، الكثير من المرونة.
على وجه الخصوص ، فإن malloc تقوم الدالة بإرجاع نجمة باطلة.
يمكننا إنشاء وظائف باطلة المؤشرات وتمرير مؤشرات الفراغ
لجعلها أكثر مرونة.
هناك الكثير يمكننا دراسة ذلك.
مكتبات ثابتة وكائنات مشتركة.
لم نتحدث عن هذا مفهوم المكتبة.
نحن نستخدم المكتبات عندما نقوم بالربط.
على وجه التحديد ، الكثير من يتم تعريف
المكتبات في مكتبات c القياسية.
ولكن يمكنك إنشاء مكتبات خاصة بك.
أنشأنا برامج.
البرامج هي عمليات التي تعمل في الذاكرة.
لكن المكتبات هي في الواقع كود آخر يمكنك إعادة استخدامها في برامج أخرى.
على سبيل المثال ، مكتبة c القياسية.
إذا كنت قد برمجت في أخرى اللغات ، عادةً ما تكون واجهات برمجة تطبيقات
تأتي مع اللغة.
هناك نوعان من المكتبات التي يمكنك إنشاؤها.
يمكنك إنشاء ثابت مكتبة حيث تقوم بتجميع كل هذه التعليمات
البرمجية عند الارتباط.
وبعد ذلك يمكنك أيضًا إنشاء ملف كائن حيث أثناء تنفيذ البرنامج
، أنت ذاهب إلى البحث عن الوظائف واستدعاءها.
لذلك عادة ما تنتهي المكتبات الثابتة في نقطة أ ويتم تجميعها
في وقت ثابت أو يتم تجميعها في عند تجميع البرنامج.
الكائنات المشتركة هي نقطة حتى الملفات أو يمكنك أيضًا اعتبارها نوعًا ما كملفات
dll إذا كنت سمعت من أي وقت مضى عن مكتبات الارتباط الديناميكي
و Visual c plus plus.
لكن الأشياء المشتركة ليست وقت الترجمة.
مرة أخرى ، إنها طريقة لإعادة استخدام الكود.
يمكننا دراسة هذه المفاهيم وأنا يمكن أن يوضح لك كيفية إنشاء مكتبات ثابتة
وكذلك الكائنات المشتركة.
وحدات الماكرو.
لم تتح لنا الفرصة للحديث عن الماكرو.
هذا موضوع متقدم.
يتم تشغيل هذا بواسطة المعالج المسبق للقيام بشكل أساسي بالاستبدال
، استبدال السلسلة.
بعض الوظائف التي نقوم بها تمت كتابتها في الواقع
كوحدات ماكرو ، مثل تأكيد الماكرو.
يمكن استكشاف وحدات الماكرو بمزيد من التفصيل.
النقابات.
النقابات عادة تتماشى مع الهياكل.
إنها طريقة للحصول على العديد من الاختلاف أنواع البيانات التي تم إرجاعها أو أنواع مختلفة
من عناصر الأعضاء داخل ملف الهيكل الذي يمثل نفس الشيء.
لذلك يمكن أن يكون لديك هيكل يحتوي على عضو واحد ، ولكن يمكن أن يكون هذا العضو
عبارة عن عنصر تعويم و يمكنك استخدام الاتحاد للقيام بذلك.
مؤشرات دالة موضوعات أخرى.
تحدثنا عن الشخصية المؤشرات بشكل أساسي ، وحتى المؤشرات الصحيحة
والمؤشرات المزدوجة.
ولكن يمكنك في الواقع الحصول على مؤشرات التي تشير إلى وظائف مختلفة.
لذا أثناء تشغيل برنامجك ، يمكنك تنفيذ وظيفة واحدة.
ثم في المرة التالية التي يتم تشغيلها فيها ، يمكنه تنفيذ وظيفة مختلفة
بناءً على مدخلات المستخدم أو شيء من هذا القبيل.
مؤشرات الوظيفة هي موضوع كامل آخر.
مؤشرات متقدمة.
هناك الكثير من المؤشرات مما ناقشناه.
ناقشنا أساسيات المؤشرات ، ولكن يمكننا التحدث عن المؤشرات
بمزيد من التفصيل.
هناك مؤشرات فعلية للمؤشرات ، لذلك هناك مؤشرات مزدوجة ، وهذا
موضوع رئيسي أكثر تقدمًا.
الحجج المتغيرة للوظائف.
يشار إلى هذه كوظائف متنوعة.
نحن نستخدم وظيفة printf يحتوي على عدد متغير
من الوسائط ، لكننا لم نحدد أي دوال كان لدينا عدد متغير من الوسيطات
، يمكننا ذلك استكشاف هذا المفهوم مفيد للغاية.
الارتباط الديناميكي.
هذا عندما تفتح ملف مكتبة في وقت وهي مختلفة قليلاً عن
كائن مشترك.
يمكنك فتح المكتبات في وقت التشغيل ويزيد من الأداء
ويجعلك برامج قابلة للتنفيذ أصغر.
لذا dlm مفتوح هناك فعلية دعوة مكتبة للقيام بذلك.
الإشارات والتشعب اتصال interprocess.
كل هذا يمكن استكشافه بين العملية الاتصال هو عندما يكون لديك برنامجان
يريدون التواصل.
هناك طرق مختلفة يمكنهم التواصل.
يمكنهم التواصل عبر الملفات.
يمكنهم التواصل عبر شيء يسمى مقبس.
يمكنهم التواصل باستخدام الأنابيب.
هناك تقنيات مختلفة هناك ، ولكن عندما تريد عمليتان التحدث
مع بعضهما البعض.
Forking هو المكان الذي يمكنك خلق عملية أخرى.
هناك مكتبات لإنشاءها عمليات أخرى في التعليمات البرمجية الخاصة بك.
إذا كنت تريد إنشاء آخر عملية في التعليمات
البرمجية الخاصة بك ، سيكون لها مساحة ذاكرة العنوان الخاصة بها ويمكن أن يجعل برنامجك
أكثر كفاءة إلى حد ما.
ثم إشارات ، لم ندخل الكثير من الإشارات ، ولكن يتم استخدامها
لتصحيح الأخطاء لتوليد مختلفة رسائل لبرامج مختلفة.
الترابط والتزامن.
موضوع متقدم آخر التي تريد دراستها.
هذا يسمح بالإعدام المتعدد نقاط داخل برنامجك.
يسمح لك بتشغيل التعليمات البرمجية تقريبًا في نفس الوقت.
لذا فهو نوع من الكفاءة.
إذا كان لديك مهمة طويلة الأمد ما عليك القيام به في برنامجك مثل مراقبة
البيانات أو الانتظار البيانات أو ربما مهمتك هي قراءة ملف ضخم ، يمكنك إنشاء
ملف آخر مؤشر الترابط للقيام بذلك ثم لا يزال تنفيذ أجزاء أخرى
من البرنامج الخاص بك بالتزامن في نفس الوقت.
مآخذ.
تستخدم المقابس للتواصل.
سيتم استخدام مآخذ إذا أردت للاتصال بكمبيوتر آخر والحصول على البيانات
من هذا الكمبيوتر الآخر.
الشبكات كبيرة جدًا لأننا لديك الإنترنت وكل شيء آخر.
حتى تتمكن من معرفة كل شيء عن مآخذ وانظر كذلك.
هناك وظيفتان تسمى القفزة الثابتة والقفزة الطويلة.
هذا لاستعادة الدولة.
يمكننا دراسة تلك الموجودة في تفاصيل جيدة المزيد عن إدارة
الذاكرة والتجزئة.
هذا ليس فقط عن malloc ، ولكن هذه هي الطريقة التي يمكنك بها إدارة ذاكرتك
ووضعها على الكومة أو المكدس.
يمكنك التأكد من أن برنامجك أكثر فاعلية ، لذا ليس
لديك الكثير من التجزئة.
التجزؤ هو المكان الذي تمتلك فيه الذاكرة في مواقع مختلفة ، وهو ليس تسلسليًا
، لذا قد يكون من الصعب القيام به يستغرق المزيد من الوقت للبحث عن تلك الذاكرة.
يمكنك تقليل التجزئة.
يمكننا العمل على صنع برامج محمولة أكثر.
بشكل عام ، برامج ج محمولة جدًا.
ولكن هناك المزيد من التقنيات التي يمكنك الاستفادة منه للتأكد من أنه عند كتابة برنامجك
مرة واحدة ، فإنه يعمل على العديد من أنظمة التشغيل المختلفة ولا يتعين
عليك إعادة كتابتها.
يمكننا استخدام بعض معايير posix المتوفرة
في c.
يمكننا التأكد من ذلك حسب على أي إصدار مختلف
من معيار c ، أنهم العمل في معايير متعددة باستخدام اتفاقيات
معينة.
يمكننا أيضًا كتابة البرامج التي واجهة مباشرة مع النواة.
تذكر أن النواة هي ملف أدمغة نظام التشغيل.
تحتوي النواة على كافة برامج التشغيل.
يحتوي على جميع أنواع المكالمات لخفض مستوى وظائف الذاكرة.
يفعل الكثير من معلومات مختلفة.
لذا فإن النواة محددة وظائف حيث يمكنك التفاعل معها
في برنامج c الخاص بك.
سيكون هذا منخفضًا مستوى الاشياء المضمنة.
لذلك يمكننا استخدام المكالمات مثل ضوابط الإدخال / الإخراج.
يمكن أن نخلق السائقين ل التحدث مع الأجهزة مباشرة.
هناك الكثير حول المترجم وأعلام مختلفة يمكنك
تمريرها إلى المترجم أو الرابط ، مما يجعل برنامجك أكثر كفاءة
مرة أخرى.
لم نحصل على فرصة تتحدث كثيرًا عن الكثير
من الأعلام المختلفة.
تحدثنا بشكل رئيسي عن اندفاعة الجدار وبعض العناصر الأساسية الأخرى
، ولكن لا شيء أكثر تقدمًا.
تحدثنا عن المصحح وكيفية تصحيح أخطاء التطبيقات.
كان المصحح في كتل التعليمات البرمجية من خلال واجهة المستخدم الرسومية.
لكن الميزة الحقيقية للمصحح تحت غطاء محرك السيارة يستخدم gdb.
Gdb هو مصحح أخطاء gnu.
وتحدثنا فقط عن نقاط التوقف واستخدامه من خلال واجهة المستخدم الرسومية
، ولكن يمكنك ذلك فعل الكثير باستخدام gdb.
يمكننا الذهاب من خلال مصحح أخطاء gdb من أوامر مختلفة لوحدة التحكم
، افعل الكثير باستخدام core file فهم كيفية قراءة الملف الأساسي
باستخدام gdb ، a الكثير من المواضيع المتقدمة اللطيفة هناك.
أدوات التنميط والتعقب.
لم نتحدث عن البعض محللات ثابتة ، بعض الأدوات التي يمكنها تحليل التعليمات البرمجية
الخاصة بك أمامك قم بتشغيل البرنامج الخاص بك لمعرفة
ما إذا كان هناك أي رمز ميت أو إذا كان هناك أي ممارسات برمجة سيئة.
ومن ثم أدوات التتبع أيضًا ، s trace، d trace، g profile، هذه كلها أدوات مهمة
يمكنك القيام بها تستخدم لمعرفة لمساعدتك في تصحيح الأخطاء
ومساعدتك في قياس الكفاءة أو مقدار الذاكرة التي تستخدمها أو
أداء برنامجك.
هناك ذاكرة إضافية أخرى أدوات التصحيح ، مثل valgrind.
هذا يساعد عندما تحب ظروف السباق أو لديك مشاكل
تلف الذاكرة.
في كثير من الأحيان عندما تدير ذاكرتك وكان لديك فائض في المخزن المؤقت أو تسرب للذاكرة
، إنه من الصعب جدًا العثور على هؤلاء.
لذلك هناك أدوات يمكن أن تفعل ذلك تساعدك في العثور على مثل valgrind.
وهناك الكثير من الاختلاف الموضوعات التي يمكنك استكشافها
لتصبح خبيرًا في ج.
لقد تطرقنا إلى الأساسيات.
لقد تطرقنا إلى حقًا ، حقًا أشياء مهمة للبدء.
ولكن مع هذه إضافية المواضيع ، يمكنك أن تصبح خبيرًا.
شكرًا لك.