خطاها (Errors)
برنامه نویس حرفه ای هم خطا دارد. مهم تشخیص سریع است. «خطا (Error)» یعنی برنامه درست پیش نمی رود. با نشانه ها آشنا شو تا زودتر درستش کنی.
خطاهای رایج کامپایل (Compile-Time Errors)
این خطاها اجازه ساخت برنامه را نمی دهند. پیام خطا را دقیق بخوان. معمولاً همان جا راهنمایی می دهد.
1) فراموشی سمی کالن (;)
#include <stdio.h>
int main() {
int x = 5
printf("%d", x);
return 0;
}
2) استفاده از متغیر تعریف نشده
#include <stdio.h>
int main() {
printf("%d", myVar);
return 0;
}
3) ناهماهنگی نوع داده
#include <stdio.h>
int main() {
int x = "Hello";
return 0;
}
خطاهای رایج اجرا (Runtime Errors)
اینجا برنامه ساخته می شود؛ اما حین اجرا می ریزد یا رفتار عجیب دارد.
1) تقسیم بر صفر
#include <stdio.h>
int main() {
int x = 10;
int y = 0;
int result = x / y;
printf("%d\n", result);
return 0;
}
2) دسترسی خارج از محدوده آرایه
#include <stdio.h>
int main() {
int numbers[3] = {1, 2, 3};
printf("%d\n", numbers[8]);
return 0;
}
3) استفاده پس از آزادسازی حافظه
#include <stdio.h>
#include <stdlib.h>
int main() {
int *ptr = (int *) malloc(sizeof(int));
*ptr = 10;
free(ptr);
printf("%d\n", *ptr);
return 0;
}
گام های عملی برای شکار خطاها
- پیام خطا را کامل بخوان و خط را بیاب.
- نوع خطا را تشخیص بده؛ کامپایل یا اجرا.
- فرضیه بساز، تغییر کوچک بده، دوباره تست کن.
- ورودی های لبه را امتحان کن و لاگ بگیر.
نکته: صفحه دیباگ C راهنمای قدم به قدم دارد. برای نمونه عملی مدیریت حافظه، مثال حافظه را ببین. همچنین لینک خود خطاها را نگه دار.
عادت های خوب برای کمتر کردن خطا
- همیشه متغیرها را مقداردهی اولیه کن.
- نام های معنادار انتخاب کن و منظم بنویس.
- توابع کوتاه و متمرکز نگه دار.
- حلقه ها و شرط ها را با ورودی متفاوت تست کن.
- پیام خطاها را دقیق و کامل بخوان.
جمع بندی سریع
- خطاها طبیعی هستند؛ پیام را راهنما بدان.
- کامپایل با نحو مرتبط است؛ اجرا با منطق.
- ورودی های خطرناک را زود تست کن.
- حافظه را درست مدیریت کن و NULL فراموش نشود.