أهلا ومرحبا.
في هذه المحاضرة أريد أن أتحدث حول الحجج والمعلمات.
هذه المصطلحات تميل إلى أن تكون استعمل بشكل تبادلي.
ما لديهم للتعامل مع هي في الأساس البيانات التي تمررها
إلى وظيفة.
لذا فإن المعلمة هي متغير وإعلان الوظيفة
وتنفيذ تعريف الوظيفة.
تذكر ، هذا الاختلاف بين إعلان الوظيفة ونموذج
الوظيفة وتعريف الوظيفة.
إعلان الوظيفة هو مجرد توقيع الأسلوب
، إنه رأس الوظيفة.
تعريف الوظيفة هو تنفيذ الوظيفة
، الرمز الفعلي.
في كل من هذه الشروط تعريف الإعلان ، فهم
تلك الاختلافات.
لكن المعلمة هي ما هو موجود تعريف وتعريف الوظيفة
، في هذا العنوان.
لأنه يتم تضمين كل من الرأس في التعريف الوارد في الإعلان.
عندما يتم استدعاء وظيفة ، فإن الوسيطات هي البيانات التي تمررها إلى
معلمات الوظيفة.
تلك هي القيمة الفعلية لمتغير يتم تمريره
إلى الوظيفة.
لذلك تم تحديد معلمات الوظيفة داخل رأس الوظيفة والعناصر
النائبة الخاصة بها لـ الوسائط التي يجب تحديدها عند استدعاء
الوظيفة.
لذا فهم الفرق هنا بين الحجج والمعلمات.
المعلمات لها علاقة بامتداد تعريف الوظيفة والإعلان.
الحجج حيث أنت استدعاء الوظيفة ، عندما
تستدعي الوظيفة ، فإن البيانات التي تمررها.
لذلك يتم استخدام الوسائط عند استدعاء.
ستقول هذه هي الحجج التي ستذهب إلى وظيفتي.
وعندما تستقبل الوظيفة تلك البيانات ، يشار إليها
على أنها المعلمات.
معلمات دالة هي قائمة بأسماء المعلمات مع أنواع البيانات
الخاصة بهم.
كل معلمة مفصولة بفاصلة.
القائمة الكاملة للمعلمات هي بين قوسين بعد اسم
الوظيفة.
لا يمكن أن تحتوي الوظيفة على المعلمات ، مما يعني أنه
لا توجد بيانات تم تمريرها إليها.
وفي هذه الحالة ، لديك فقط ملف قوس أيسر وأيمن مع فراغ بينهما
أو فارغ ، أنت لا يزال بإمكانه الاحتفاظ به على أنه لا شيء فارغ بينهما
، لكنه ممارسة جيدة لوضع فراغ بينهما.
الفراغ هي كلمة مفتاحية خاصة هذا لا يعني شيئًا ، يعني عدم وجود معلمات أو
عدم وجود بيانات إرجاع.
توفر المعلمات الوسائل لتمرير البيانات إلى وظيفة.
تم تمرير البيانات من وظيفة الاستدعاء إلى الوظيفة التي يتم استدعاؤها
، استدعاء e للطرف المستلم ، و نهاية النداء والطرف المتلقي.
أسماء المعلمات محلية بالنسبة للوظيفة.
سوف نتحدث عن ذلك عندما نتحدث عن البيانات المحلية.
لكن تلك المعلمات أسماء فقط موجودة داخل جسم الوظيفة.
سوف يفترضون قيم الحجج التي تم تمريرها إليها.
لذلك إذا كان لديك وظيفة تسمى أضف ، تمرر متغيرًا
كمتغير ، ثم تمرر القيمة 5 ولديك دالة بالمعامل x ، فإن
x ستكون متساوية إلى 5 في أي مكان في الجسم الوظيفي.
جسد الوظيفة يجب استخدام هذه المعلمات
في تنفيذه.
إذا لم يحدث ذلك ، فعندئذ هم لا ينبغي أن يمر.
إذا كان لديك متغير معلمة المحددة في تعريف إعلان
الوظيفة الخاص بك وأنت لا تستخدم ذلك أبدًا متغير داخل الوظيفة ، هذا هدر ، لا تقم
بتضمينه لأن هذا فقط يقول أنك لست بحاجة إليه.
لا ترسل البيانات إلى ملف وظيفة لا تستخدمها.
قد يكون لجسم وظيفي إضافي المتغيرات المحددة محليًا التي
يحتاجها تنفيذ الوظيفة.
قد يكون لديك داخل الوظيفة تم الإعلان عن متغيرات الجسم الأخرى
لأن هناك حاجة إليها مهما كانت المهمة التي تكملها.
أنت لا تعمل فقط على البيانات التي تم تمريرها إليها.
يمكنك العمل على المستوى المحلي البيانات داخل الوظيفة.
عند تمرير مصفوفة كملف حجة إلى دالة ، يجب عليك
أيضًا تمرير وسيطة إضافية ، لديك معلمة أخرى محددة تحدد
حجم المصفوفة.
والسبب في ذلك هو أن ملف ليس للدالة طريقة لمعرفة عدد العناصر
في المصفوفة.
لذلك حتى لو أعلنت أن مصفوفة بحجم 50 ، يمكنك
تخزين 30 عنصرًا فقط.
وإذا كنت ستستخدم ذلك مجموعة داخل جسم الوظيفة ، ربما ستحتاج
إلى ذلك تعرف على حجمها لأنك ستحتاج إلى تكرار أي منهما من خلاله
باستخدام حلقة أو ستحتاج إلى الوصول إلى
العناصر.
وإذا كانت عناصر الوصول الخاصة بك تتكرر من خلاله ،
فأنت بحاجة إلى معرفة ما إذا كان عندما تكون خارج الحدود.
وتحدثنا عن الخروج من هناك حدود هناك ولماذا هذا مهم.
حسنًا ، هذا مثال.
عندما تكون وظيفة printf يسمى ، فأنت تقدم دائمًا
قيمة واحدة أو أكثر كوسيطات.
القيمة الأولى هي أن سلسلة داخل علامات الاقتباس المزدوجة.
القيم المتبقية هي أي المتغيرات التي سيتم عرضها.
هذه في الواقع وظيفة يأخذ عددًا متغيرًا من الحجج التي
ربما لن نتحدث عنها نظرًا لأن هذه فئة للمبتدئين ، فهذا
مفهوم أكثر تقدمًا.
لكن وظيفة printf هي ملف مثال جيد فيما يتعلق بنقل
البيانات إليها لأنك تمر مجموعات متعددة من البيانات إليها ، إما
السلسلة الموجودة داخل علامات الاقتباس أو المتغيرات التي تريد عرضها.
لهذا السبب من المهم جدًا أن تكون قادرة على تمرير البيانات إلى وظيفة.
إنه يعزز بشكل كبير الفائدة ومرونة الوظيفة.
إذا لم يكن لديك وظائف القدرة على قبول البيانات ،
فلن تكون مفيدة.
في المثال الذي قدمته في المحاضرة الأخيرة
حيث كان لدينا وظيفة تم عرضها الناتج ، لم يفعل الكثير حقًا.
كانت ثابتة للغاية.
فعلت نفس الشيء في كل مرة تستدعيها.
ولكن ماذا لو كان لديك وظيفة التي أخذت البيانات ، ثم يمكنك
التحكم في ما يتم عرضه.
لذلك تمامًا مثل وظيفة printf.
إذا لم تفعل وظيفة printf لها معلمات ، فلن تكون قادرًا على
إخبارها بما تريد عرضه.
إذا لم تقبل البيانات ، فأنت لن يكون قادرًا على قول ، مرحبًا
، عرض هذا المتغير أو عرض هذه السلسلة.
لن يكون مفيدًا جدًا.
لذلك تريد أن تكون قادرًا على المرور البيانات إلى وظيفة
تجعلها أكثر فائدة ومرونة.
وسترى ذلك.
أعني إذا قمنا بعملية الضرب لن ترغب في ضرب نفس
الشيء رقمين في كل مرة.
سوف تأخذ المعلمات والبيانات سيتم تمريره إليه لرقمين.
لذلك يمكنك إجراء حسابات مختلفة بناءً على البيانات التي تم تمريرها إليها.
من المهم جدا أن نفهم تمرير البيانات وسبب فائدتها.
إنها فكرة جيدة أيضًا أن تضيفها قبل كل من تعريفات الوظائف
الخاصة بك.
يساعد في شرح ما ستفعل الوظيفة وكيف سيتم
استخدام الحجج.
سترى هذا عادة.
سترى هذا في أمثلتي.
لديك إعلان الوظيفة في الجزء العلوي من الملف ، لديك
تعريف الوظيفة.
يتضمن تعريف الوظيفة رأس الوظيفة.
فوق الوظيفة مباشرة header ، لديك تعليقات ، وعادة
ما تكون تعليقات متعددة الأسطر.
إذن لديك الشرطة المائلة ، النجمة.
وهناك تقول اسم الوظيفة ، والغرض من الوظيفة ، ثم وصف أي بيانات
أيضًا التي يتم تمريرها إلى الوظيفة.
هذا ، مرة أخرى ، للصيانة وتكون قادرًا على العثور على الأخطاء
وإصلاحها بشكل أسرع.
عادة ، تريد أن يكون لديك ملف اسم جيد للوظيفة التي
ستخبرك بشيء ما.
ولكن مع تعليقات إضافية ، سيخبرك أكثر.
هنا مثال على أن وظيفة يضاعف رقمين ، مما يؤدي إلى تمرير البيانات
إليه.
لدينا ضرب عددين.
نحن نعلم أنها دالة لأن لديها المعلمات بشكل أساسي.
لها أقواس.
هذه طريقة واحدة يمكنك التعرف عليها تعمل عندما ترى الأقواس.
أعني أنه يمكننا التعرف أيضًا لأنه يحتوي على نوع إرجاع.
هناك أشياء متعددة أخبرنا أنها وظيفة.
لكن الشيء الرئيسي هو الأقواس ثم ترى أيضًا الأقواس ، الأقواس
المتعرجة التي تشير إلى بداية ونهاية الكتلة.
هذا ضرب اثنين بالرغم من وظيفة الأرقام.
تذكر أن معلمات الوظيفة يتم تحديدها بين الأقواس ثم يتم فصلها
بفاصلات.
هنا لدينا معلمتان.
لدينا معلمة مسماة x ومعلمة تسمى y.
لكل معلمة ، أنت يجب أن تحدد نوع البيانات
الواردة.
إذن لدينا هنا اثنان ints.
هذه هي الطريقة القياسية ل تمرير البيانات وكيفية القيام بذلك.
بين الأقواس ، البيانات اكتب ثم اسم المتغير.
اسم المتغير ل أي شيء صالح في c لاسم متغير
، يمكنك ذلك أطلق على ذلك x y z ما تريد.
لا يمكنك البدء مع رمز علامة الدولار.
ثم تفصل بينهم بفواصل ، تعتاد على هذه الاتفاقية
، المعلمات داخل الأقواس.
إذا لم يكن لديك معلمات ، فلا توجد بيانات التي تم
تمريرها إلى الوظيفة ، ما ستراه بين هؤلاء الأقواس باطلة أو لن ترى
أي شيء بين القوسين.
هذه الوظيفة هي كل ما سيفعله ستأخذ البيانات
التي تم تمريرها إليها والتي هي متغيرين المسمى الآن x و y ، وسوف يضربهما معًا
ويخزنهما في متغير اسمه نتيجة أو في هذه الحالة يبدو
أنني أخطأت في كتابة t.
ثم ماذا يفعل هل تطبع البيانات.
يطبع البيانات هذا مضروب.
لكن مرة أخرى ، انظر إلى المرونة وفائدة الوظيفة لأنها
تأخذ البيانات.
يمكن أن تعرض بشكل مختلف البيانات بناءً على ما تمرره.
عندما نستدعي الوظيفة في الروتين الأساسي هنا ، نقول ضرب
عددين ونمرر في المتغيرات.
نمرر القيمة 10 و 20.
يمكننا المرور في المتغير الأسماء هنا أيضًا.
لكن في هذا المثال ، نحن فقط أقول 10 و 20.
هذا سوف يستدعي الوظيفة اضرب رقمين
وسيمرر البيانات 10 لـ المعلمة الأولى 20 للثانية.
إذن x سيساوي 10 ستساوي y 20.
لذلك عندما نقوم بضرب x مضروبة في y ، ستكون 10 ضرب 20 ، والنتيجة
ستخزن 200 ثم يتم عرض هذه النتيجة
جنبًا إلى جنب مع المتغيرات التي يتم تمريرها إلى x y و z.
لذلك سوف يتم عرضها 10 20 ثم 200.
لاحظ أيضًا أننا نستطيع الآن إعادة استخدام هذه الوظيفة.
نحن نسميه مرة أخرى مع مختلف البيانات ، قيم البيانات 20 و 30 في السطر الثاني
هنا في الوظيفة الرئيسية.
ثم نسميها مرة أخرى أ المرة الثالثة لنضرب 50 في 2.
من المفيد جدًا أن تكون قادرًا على القيام به هذا لإنشاء دالة
تأخذ بيانات مختلفة يجعلها قابلة لإعادة الاستخدام ، مما يجعلها مرنة.
ومن السهل جدًا اتباع القواعد النحوية.
إنه مجرد متغيرين بداخله الأقواس مفصولة بفواصل.
ثم نسميها حتى أسهل ، ما عليك سوى تباعد
اسم ولديك البيانات.
مهما كانت البيانات مفصولة أقواس جانبية شائعة ثم
تنتهي بفاصلة منقوطة.
يمكنك تمرير أي نوع من نوع البيانات في وظيفة.
يمكنك تمرير المصفوفات.
سنتحدث أيضًا عن كيفية القيام بذلك يمكنك تمرير أنواع البيانات الأخرى.
لدينا أمثلة بسيطة هنا ، لكن يمكنك أيضًا تمرير المؤشرات التي لم نتحدث
عنها بعد.
يمكنك المرور في الهياكل.
مرة أخرى ، مفهوم آخر لم نتحدث عنه.
لكنه يصبح حقًا ، حقًا ذات مغزى ومفيد عند تمرير البيانات
هنا.
هذا مثال بسيط.
لاحظ بناء الجملة ، وادرس هذا وسيشكل تحديًا جيدًا لك
حيث تكتب ملف عدد الوظائف المختلفة.
شكرًا لك.