ماهي المواضيع المتقدمة في السي ؟

السلام عليكم

عندما أبحث عن المواضيع المتقدمة في لغة السي أجد مواضيع حول

STRUCTERS

TREE

TRI

RECURSION

...

لاكن كل هده الأنواع من المواضيع, ادا كنت متمكن من أساسيات اللغة ستتعلمها بسرعة

  • هده المواضيع تتعلق بالخورزميات أكتر مما تتعلق بالسي.

ما أبحت عنه أنا مواضيع تتعلق بلغة السي لاأعرف ما هي هاته المواضيع

لاكن قرائتها تجعلك تفهم كيف تعمل بعض الأمور في السي

يعني تصبح أنت كذلك قادر على كتابة دوال الادخال والاخراج

دوال التحكم بالذاكرة ...


mujahid أضف ردا

يعني تصبح أنت كذلك قادر على كتابة دوال الادخال والاخراج

إذا كان ما تقصده كتابة دوال مثل: "printf"، أو "scanf"، فهذه الدوال يمكن كتابتها بغلة التجميع ثم إعلان رأس الدالة فقط.

وهذا مثال على رأس دالة مصغرة عن "printf":

void myprint(char[]*);

في الشفرة السابقة كتبنا رأس دالة لتبين معاملات هذه الدالة، وهذا المعامل هو مؤشر إلى مصفوفة رموز. لذا عند كتابة هذه الدالة بلغة التجميع نضع في الحسبان أن معامل هذه الدالة (مؤشر) سيرسل عن طريق المسجل %rdi (أو edi في أنظمة 32 بت) - وهذا حسب أنظمة لينكس، ولا علم لي إذا كانت بقية الأنظمة تتبع نفس الأسلوب أم لا-.

وعند ترجمة البرنامج نقوم بكتابة على هذه الشاكلة:

gcc my_c_file.c my_assembly_file.s -o my_program

وهذا بستخدام مصرف جنو (الذي يعمل في لينكس).

وهناك طريقة أخرى لا علم لي بها جيدًا وهي بستخدام الكلمة المحجوزة "asm"؛ فبواستطها يمكن كتابة شفر التجميع داخل شفرة السي.

والله أعلم.

نعم مثل PRINTF

لاكن لم أعني دوال الادخال والاخراج فقط بل كيف تصبح قادر على التعامل مع الأمور "الخفية " على المبرمج في السي

في كلتا الطريقتين هناك اعتماد مباشر للاسمبلي

السؤال هو كيف تمت كتابة الدالة printf ,هل تم استخدام احدى الطرقتين ؟

  • أنا لا أبحت عن طرق تم ابتكارها من طرف شخص أو مجموعة , ما أريده هو ما تحتوي عليه السي نفسها