زبان برنامهنویسی C چیست؟
آموزش برنامه نویسی C: برای این که بدانید ماهیت زبان برنامهنویسی C چیست، بهتر است ابتدا با مفهوم کدنویسی آشنا شوید. بدین منظور پیشنهاد میکنیم ابتدا مطلب زیر را مطالعه نمایید:
C رویهای سطح پایین است که به کد ماشینی که رایانه اجرا میکند، بسیار نزدیک است. این وضعیت موجب میشود که این زبان بسیار سریع باشد؛ اما استفاده از آن چالشبرانگیز است و در صورتی که مراقب نباشید، ممکن است به سیستم خود آسیب بزنید.
چرا باید برنامهنویسی C را بیاموزیم؟
اگر C چنین پیچیده و خطرناک است، پس اصلاً چرا باید آن را آموخت؟ پاسخ این است که:
برخی افراد فکر میکنند که یادگیری C پیش از هر زبان دیگر برنامهنویسی موجب میشود که فرد درک بهتری از برنامهنویسی به صورت کلی داشته باشد.
یادگیری C در واقع به معنی یادگیری طرز کار رایانهها نیز هست. برنامه نویسان C میتوانند درک عمیقتری از شیوه تأثیر کد روی سیستمها داشته باشند و در نتیجه یادگیری زبانهای برنامهنویسی دیگر برای آنها آسانتر خواهد بود.
-
یادگیری انواع متغیرهای پایه
دادهها در انواع مختلفی هستند. دانستن این که با چه نوع دادهای سر و کار داریم حائز اهمیت است، زیرا در غیر این صورت ممکن است موجب ایجاد سردرگمی شوند. به عنوان مثال باید بدانیم که عدد 5 میتواند یک «عدد صحیح» (Integer) باشد و همچنین میتواند یک کاراکتر متنی باشد.
کد فوق دیگر موجب سردرگمی نمیشود، چون مقدار صحیح 5 به متغیر عددی انتساب یافته است. باید به C اعلام شود که چه نوع دادهای میتواند بپذیرد تا بتواند به طرز بهتری با دادهها کار کند. انواع داده و روشهای انتساب آنها به متغیرها بخشی ضروری از یادگیری C محسوب میشود و درک آنها حائز اهمیت بالایی است. دانستن شیوه انتساب انواع صحیح به دادهها، در همه زبانهای برنامهنویسی یک مهارت مهم محسوب میشود، اما در زبان C کاملاً ضروری است.
-
یادگیری عملگرها
اگر C نخستین زبان برنامهنویسی است که یاد میگیرید، احتمالاً نخستین باری است که با عملگرها آشنا میشوید. عملگرها نمادهایی هستند که به کامپایلر اعلام میکنند یک وظیفه را اجرا کند. شاید سادهترین مثال عملگر + است.
درک این که کد فوق دو متغیر صحیح را با هم جمع میکند کار دشواری محسوب میشود. البته همه عملگرها به این سادگی نیستند. C از عملگرهای زیادی برای عملیات حسابی، انتسابی، منطقی و موارد دیگر استفاده میکند. دانستن این که هر کدام از این عملگرها چه کاری انجام میدهند، به شما کمک میکند که مفاهیم برنامهنویسی را سریعتر درک کنید.
-
استفاده از کتابخانههای استاندارد
C ممکن است یک زبان سطح پایین باشد؛ اما مجموعهای از کتابخانهها برای کمک به ایجاد برنامهها دارد. عملیات حسابی، دادههای خاص locale (مانند نمادهای پولی) و انواع متغیرهای مختلف و ماکروها، همگی مواردی هستند که در این کتابخانهها تعریف شدهاند.
شما میتوانید با گنجاندن این کتابخانهها در کد خود، آنها را مورد استفاده قرار دهید. مثال زیر را در نظر بگیرید:
در C عمل ساده خروجی دادن به کنسول نیازمند گنجاندن فایل هدر stdio.h (کتابخانه استاندارد ورودی/خروجی) است. 15 کتابخانه استاندارد مختلف برای برنامهنویسی در زبان C وجود دارند که هر یک وظایف مختلفی بر عهده دارند.
-
C بخشش ندارد
زبان C دقیقاً همان کاری را انجام میدهد که به آن اعلام شده است و به جای این که در صورت بروز موقعیتهای بیمعنی شکایت کند، به تلاش خود در جهت اجرای وظیفهاش ادامه میدهد. این وضعیت نه تنها میتواند منجر به از کار افتادن برنامه شما بشود؛ بلکه ممکن است کل سیستم را از کار بیندازد.
با این که این وضعیت بغرنج به نظر میرسد؛ اما معمولاً چنین نیست. شما قرار نیست رایانه خود را خراب بکنید؛ اما ممکن است در نهایت چندین باگ در برنامهتان کشف کنید. به مثال زیر توجه کنید:
این قطعه کد سؤالهایی را در کنسول نمایش میدهد و سپس ورودیهای کاربر را پیمایش کرده و آنها را در اعداد صحیحی ذخیره میکند. این برنامه برای جمع و تفریق کردن اعداد پیش از نمایش مجدد پاسخ به کاربر طراحی شده است. احتمالاً متوجه شدهاید که اشکالی در این برنامه وجود دارد؛ چون خروجی قطعاً بیمعنی است:
از آنجا که ما هرگز مقادیر را تفریق نکردهایم؛ متغیر تفریق مقدار بیمعنی دارد. زبانهای برنامهنویسی دیگر در مواردی که به متغیر تفریق هیچ مقداری نداده باشید، خطایی به شما نمایش میدهند، اما C چنین نیست.
دیباگ کردن این مثال کار آسانی است، اما برخی کدها از هزاران خط تشکیل یافتهاند و بینهایت پیچیده هستند و C کمکی به یافتن خطاها نمیکند. به جای آن C یک پاسخ بیمعنی ارائه میکند و شما خودتان باید دریابید که چرا چنین اتفاقی افتاده است. البته یک گزینه دیگر نیز وجود دارد که در بخش بعدی توضیح میدهیم.
-
دیباگ کردن بهترین دوست شما است
از آنجا که کدهای C شامل رفتارهای ناخواستهای هستند، ممکن است موجب بروز خطاهایی شوند که ردگیری آنها دشوار باشد و دلیل ظاهری مشخصی نداشته باشند. در این موارد برای این که عقلتان را به طور کامل از دست ندهید، باید در زمینه دیباگ کردن کد مهارت پیدا کنید. یک ابزار دیباگر مانند GDB میتواند در این زمینه کمک کند. GDB در تصویر زیر روی اسکریپت دارای خطا عمل میکند.
به طور معمول یک برنامه تا زمانی که پایان یابد یا از کار بیفتد، اجرا میشود. ابزار دیباگ امکان توقف کد را به صورت خط به خط میدهند. در کد فوق نقاط توقف روی خطهای 10 و 13 که مشکوک به وجود مشکل هستند، تنظیم شدهاند.
سپس برنامه به صورت نرمال اجرا میشود. اعداد که وارد شدند، در ادامه برنامه پس از خط 10 مکث میکند. ابزار دیباگ از شما میخواهد که مقدار تفریق شده را نمایش دهید که عدد 37 را نمایش میدهد. این وضعیت معنیدار است، چون ما هنوز از آن نخواستهایم که تفریقی انجام دهد و از این رو یک مقدار تصادفی است. در ادامه دیباگر کار خود را به پیش میبرد. این فرایند پس از خط 13 نیز ادامه مییابد و مقدار تفریق شده تنها برای یافتن مقداری که تغییر یافته است نمایش مییابد.
بدین ترتیب مشخص میشود که ما کلاً فراموش کردهایم مقدار را محاسبه کنیم و به جای آن یک خط خالی از کد قرار دادهایم. درک این نکته به لطف دیباگر ممکن شده است. GDB بهترین دوست کدنویسهای C است و هر چه زودتر کار با آن را یاد بگیرید، خوشحالتر خواهید بود.
سخن پایانی
زبان C در واقع یک تجربه یادگیری به درازای عمر است و موارد مهمی مانند اشارهگرها و تخصیص حافظه در آن وجود دارند که در این مقاله اصلاً اشاره نکردهایم. با این که C مشهور به زبان دشوار است؛ اما شما میتوانید با تمرین آن را یاد بگیرید، بنابراین دست به کار شوید و در اولین فرصت شروع به یادگیری آن بکنید.
اگر این مطلب برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند: