اذهب إلى المحتوى
  • 0

ما الفرق بين func(void) و ()func في لغة ++C؟

Mohssen A Mohssen

السؤال

لماذا يستعمل بعض المبرمجين النوع void كمعامل في الدوال التي لا تقبل أي مدخلات، مثل هذا الكود:

int func(void);

أليس من الأسهل أن أقوم بكتابة تعريف الدالة كالتالي:

int func();

ما الفرق بين الطريقتين؟ وهل يؤثر هذا الأمر على أداء البرنامج؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 2

هذه العادة البرمجية جاءت من لغة C ، حيث أنه في لغة C الدالة التي لديها قوسين فارغين كالدالة التالية:

int func();

تقبل أي عدد من المدخلات من أي نوع، حيث لا يقوم المصرف بالتحقق في هذه الحالة من عدد المدخلات إلى الدالة، ولجعل الدالة لا تقبل أي مدخلات على الإطلاق يجب أن تكتب النوع void كمعامل لهذه الدالة، ويؤدي إستخدام الدالة بأقواس فارغة إلى سلوك غير معروف undefined behavior, لذلك يجب أن يتم تمرير معامل واحد على الأقل، وفي الوقت الحالي يفضل أن يتم إستخدام طريقة ... لعمل دالة تقبل أي عدد من المدخلات:

int func(int args, ...);

أما في لغة ++C فإن الأقواس الفارغة ( ) تعني أن الدالة لا تقبل أي مدخلات، ومع ذلك فإن void كمعامل للدالة في لغة ++C يُعد صحيحًا أيضًا. وبناءً على ما سبق فلا يوجد فرق في للأداء بين الطريقتين.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...