سؤال

كان سيئة مطبعي أن يضيع وقتي و زميلي الوقت كان شيئا من هذا القبيل:

for (i = 0; i < blah; i++); // <- I had a semi-colon here, that's the bug!
{
  // Some awesome logic here
}

أولا وقبل كل شيء, انها محرجة جدا, الشيء الثاني, لم ينبغي تكرار هذا.أنا جديدة نسبيا C.في جافا, أعتقد أنني يمكن استخدام FindBugs للقبض على أخطاء مثل هذه ، ما هي الأداة التي يجب استخدامها ل ج الرمز ؟ الوبر ؟

هل كانت مفيدة؟

المحلول

نعم، PC-لينت هو على الارجح أفضل وسيلة متاحة.

نصائح أخرى

بالإضافة إلى Lykathea جهاز الوبر اقتراح, يمكنك أيضا الحصول على أفضل (أو على الأقل أكثر) التشخيص إذا كنت يرفعه مستوى التحذير من المترجم.شيء مثل /W4 أو -Wall

على الرغم من أنني لست متأكدا إذا كان لديك مشكلة معينة قد اشتعلت مع هذا (MS VC لا يبدو أن العلم أنه حتى مع كل التحذيرات تمكين).أعتقد هذا لأنه ليس من غير المألوف للتعبير عن for الحلقات أن تكون فارغة عندما يتم العمل كما الآثار الجانبية من حلقة التحكم التعبيرات.

عدد قليل من الأشياء التي تم حفظها في الماضي من أعلى رأسي:

  • استخدام إذا (3 == bla) بدلا من (bla == 3), لأنه إذا أخطأت و اكتب (3 = bla) مترجم يشكو.

  • استخدام كل التحذيرات التبديل.المترجم الخاص بك يجب أن يحذرك حول تصريحات فارغة مثل ذلك.

  • استخدام التأكيدات عندما يمكنك البرنامج دفاعيا.وضع جيد الجهد في جعل البرنامج تفشل في وقت مبكر ، سترى الضعف بهذه الطريقة.

  • لا تحاول الالتفاف على أي ضمانات المترجم أو نظام التشغيل قد وضعت في المكان.هم هناك لسهولة البرمجة aswell.

وننظر أيضا في رنة تحليل ساكنة

وأود أن تبدأ من خلال التعلم حول جبيرة و <لأ href = "HTTP : //en.wikipedia.org/wiki/Gdb "يختلط =" نوفولو noreferrer "> جدب . إذا كنت بحاجة إلى أكثر تقدما، وبناء على هاتين الأداتين. لكنها بداية جيدة.

تحذير

لقد دول مجلس التعاون الخليجي أكثر من الوظائف التي لينت وكان قد بنى في طريق أعلام .

وأي واجهة المستخدم الرسومية جيد بيئة البرمجة ( "IDE" - بيئة تطوير متكاملة). مثل الكسوف من شأنه أن يولد تحذير في حالة من هذا القبيل

وهناك تمييز في بناء الجملة جيدة وسوف تجعل بعض الحالات مثل هذا أكثر وضوحا.

وأود أن أقترح رؤية إذا كان لديك القدرة على تطبيق معايير ميسرا . كانت مكتوبة مع الفكر كبيرة والعديد من القواعد التي هي بسيطة للمترجم للتحقق. على سبيل المثال، هناك قاعدة يمكنني استخدام يتطلب من جميع الأوامر NOP لها خط الخاصة بهم. وهذا يعني عندما كنت وضعت. في نهاية البيان حلقة سيكون من خلال خطأ قائلا أنه ليس على خط هو نفسه.

QA · C عن طريق البحث البرمجة هو أداة أخرى جيدة تحليل ثابتة لC.

في هذا الإصدار (القديمة) من كيفية اطلاق النار على نفسك في القدم و، والعديد من الإصدارات الأخرى في جميع أنحاء شبكة الإنترنت، <م> C هو دائما اللغة التي تسمح لأبسط الإجراءات. عندما البرمجة في C ، عليك أن تتذكر هذا وتوخي الحذر. إذا كنت تريد الحماية، واختيار لغة أخرى.

وهذا القول هو عزا لبيارني Stroustrup (C ++) نفسه. ل(سوء) اقتباس:

<اقتباس فقرة>   

و"C يجعل من السهل لاطلاق النار على نفسك في القدم"

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top