لطفا جهت اطلاع از آخرین دوره ها و اخبار سایت در
کانال تلگرام
عضو شوید.
برنامه نویسی C پیشرفته
Advanced C Programming
نکته:
آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره:
برنامه نویسی C برای برنامه نویسان C درک عالی و بسیار عمیق از اشاره گرها و مدیریت حافظه مهارت در استفاده از پیش پردازنده توانایی نوشتن کدهای ماژولار، قابل گسترش، خواندن و نگهداری درک نحوه استفاده از ساختارهای C (مانند ساختارها، اتحادیه ها، آرایه ها، ...) در مسائل واقعی 5 پروژه برای پوشش بیشتر مباحث مطرح شده از طریق دوره پیش نیازها: دانش برنامه نویسی C مقدماتی قبلی (نوشتن Hello World/انواع داده ها/در صورت شرایط/حلقه ها) بیش از حد کافی باشد.
از اینکه چند ثانیه برای بررسی دوره من وقت گذاشتید متشکرم.
اگر قبلاً یادگیری برنامه نویسی C را شروع کرده اید و اکنون کنجکاو هستید که در مورد آنچه در پشت صحنه اتفاق می افتد درک عمیقی داشته باشید، این دوره برای شما مناسب است.
رویکرد من در این دوره این است که هر موضوعی را ریشهیابی کنم و به جای مثال ساده از مثالهای واقعی استفاده کنم.
از پیش پردازندهها شروع میکنیم، نحوه عملکرد آن و نحوه اشکالزدایی آن با پرچمهای کامپایلر خاص را بررسی میکنیم.
با رفتن به توابع، مدل اجرا را بررسی میکنیم و CPU چگونه فراخوانیهای تابع، ارسال آرگومان، نحوه مدیریت متغیرهای محلی در پشته و موارد دیگر را بررسی میکند.
اشارهگرها! احتمالاً موضوعی است که بیشتر از همه از ابهام آن شناخته شده است. در این کلاس سعی می کنیم با مثال موارد را ساده کنیم. ما مفهوم تخصیص حافظه پویا را بررسی می کنیم و یک مدیر حافظه پویا را به عنوان مثال پیاده سازی می کنیم.
ما ساختارها و اتحادیهها را بررسی میکنیم که با مثالهای واقعی پوشش داده شده است.
ما مروری اجمالی در مورد طراحی مدولار و نحوه توسعه کد به گونهای داریم که بتوان از آن دوباره استفاده کرد.
در پایان، ما یک نمونه ویرایشگر تصویر BMP را توسعه میدهیم، چند نمونه را که در طول دوره انجام دادهایم جمعآوری میکنیم.
نیازی به گفتن نیست که 30 روز ضمانت بازگشت پول دارید. اگر متوجه شدید که دوره برای شما مناسب نیست (قول میدهم که مناسب نیست)، میتوانید آن را برگردانید و پول خود را دریافت کنید.
سرفصل ها و درس ها
مقدمه
Introduction
آماده سازی محیط
Preparing the environment
GCC در ویندوز
GCC on Windows
فرآیند تدوین
The compilation process
فایل های منبع پروژه ها
Projects Source Files
پیش پردازنده C
The C Preprocessor
بخشنامه #تعریف
The #define directive
ماکروهای عملکردی
Function-like macros
احتیاط با استفاده از ماکروهای تابع مانند
CAUTION with using function-like macros
تعریف ماکروها از طریق کامپایلر
Defining macros through compiler
ماکروهای از پیش تعریف شده
Predefined macros
#شامل بخشنامه
#include directive
#اگر بخشنامه
#if directive
چند نکته در مورد #اگر
Some notes about #if
توابع
Functions
توابع توضیح داده شده است
Functions explained
توابع نسخه ی نمایشی
Functions Demo
متغیرهای محلی و جهانی
Local and Global Variables
دمو دامنه و طول عمر
Scope and Lifetime demo
مدل اجرای تابع
Function Execution Model
نسخه نمایشی مدل اجرای تابع
Function Execution Model Demo
فراخوان کنوانسیون
Calling Convention
توابع تکراری در مقابل توابع بازگشتی
Iterative vs Recursive Functions
توابع در مقابل ماکروهای تابع مانند
Functions vs Function-like macros
عملکرد در مقابل اندازه کد
Performance vs Code Size Trade-off
آرایه ها
Arrays
مقدمه ای بر آرایه ها
Introduction to Arrays
نکات مربوط به آرایه ها
Notes on arrays
نحوه چیدمان آرایه ها در حافظه
How arrays are arranged in the memory
ویژگی های آرایه ها
Characteristics of Arrays
آرایه های دو بعدی و بالاتر
2D and higher dimensional arrays
موارد استفاده Real Life برای آرایه ها
Real Life use cases for arrays
[پروژه]: بازی TicTacToe
[PROJECT]: TicTacToe Game
[PROJECT]: اجرای بازی TicTacToe
[PROJECT]: Implementing TicTacToe Game
گسترش TicTacToe
Extending TicTacToe
اشاره گرها
Pointers
مقدمه ای بر اشاره گر
Introduction to Pointers
آرایه ها و اشاره گرها
Arrays and Pointers
عملگرهای اشاره گر و ریخته گری اشاره گر
Pointer operators and Pointer casting
کاربردهای رایج اشاره گرها
Common Uses of Pointers
[مفهوم] عبور از ارزش در مقابل عبور از آدرس
[Concept] Pass by Value vs Pass by Address
[مثال] عبور با ارزش در مقابل عبور با آدرس
[Example] Pass by by Value vs Pass by Address
پارامترهای خروجی تابع
Function output parameters
پاس/بازگرداندن آرایه به/از توابع
Pass/Return an array to/from functions
سلام، من احمد هستم، یک برنامه نویس، مدرس و تولید کننده محتوا و از اشتراک گذاری دانش خود و کمک به دیگران برای موفقیت در سفرهای یادگیری خود لذت می برم. برای من، یادگیری فقط به چیزهایی که یاد می گیرید نیست، بلکه به نحوه یادگیری آن نیز بستگی دارد. به همین دلیل است که من اینجا هستم تا شما را در هر مرحله راهنمایی کنم، و مطمئن شوم که مهارتهای جدید را با سهولت و اطمینان به دست میآورید.
چه مبتدی یا یک یادگیرنده باتجربه باشید، قول میدهم هر چیزی که در دورههای من کشف خواهید کرد به روشی ساده و قابل درک ارائه خواهد شد. بنابراین نگران نباشید - شما در دستان خوبی هستید و در آستانه آغاز یک سفر هیجان انگیز یادگیری و رشد هستید!
نمایش نظرات