<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های Mohammad Abasi | محمد عباسی</title><link>https://virgool.ir/feed/@mohammad78</link><description>I&#39;m Mohammad Abasi. I love is Product Deaign and UX/UI Designer and Programmer and etc. With go powerful of front. With power full go to front :)</description><language>fa</language><pubDate>2026-11-11 18:21:05</pubDate><image><url>https://files.virgool.ir/upload/users/252870/avatar/17aNgQ.png</url><title>Mohammad Abasi | محمد عباسی</title><link>https://virgool.ir/@mohammad78</link></image><item><title>زبان C‌ - جلسه‌ی دوم ( متغییر‌ها و ثابت‌ها‌ یا Variables &amp; Constants )</title><link>https://virgool.ir/@mohammad78/زبان-c-جلسهی-دوم-kyzvjpshlpou</link><description>جلسه‌ی دوم آموزش زبان برنامه‌نویسی C به زبانی سادهتوی این جلسه با این موارد آشنا میشید :‌ متغییر‌ها، ثابت‌ها و لیترال‌ها، قوانین نام‌گذاری متغییر‌ها، نوع اعداد صحیح، نوع اعداد اعشاری، کارکتر‌ها، کارکتر‌های فرار، لیترال رشته‌‌ای. متغییر‌ها، ثابت‌ها و لیترال‌ها در Cتوی  این جلسه من درمورد متغییر‌ها و قوانینی که برای نام‌گذاری اونها وجود داره صحبت می‌کنم و بعد میگم که نحوه‌ی نوشتن ثابت‌ها  به چه شکل هست و در نهایت لیترال‌ها چی هستن و چه تفاوتی توی زبان C می‌کنن. نکته : متغیر با شناسه‌ها فرق می‌کنن و درواقع شناسه جزئی از متغییره! این مثال رو برای درک بهتر ببینید : Type ( نوع ) + Identifier ( شناسه یا نام ) + Operator ( = ) + Value ( مقدار ) + Semicolon ( ; )&#xA;&#xA;int number = 20;اینجا int میشه Type یا نوع، number میشه شناسه یا Identifier، = ( علامت مساوی )‌ میشه Operator، مقدار یا Value میشه 20 و در نهایت در آخر هر دستور باید سِمی‌کالُن یا Semicolon بذاریم که به معنای پایان دستور هستش. سمی‌کالن نذارید، کامپایلر بدجور سر مُچتون رو میگیره! از من گفتن بود :)متغییرها در زبان C اگه تا حدودی با برنامه‌نویسی آشنا باشید، می‌دونید که یک متغییر، مثل یه ظرف می‌مونه که اطلاعات مارو به صورت موقت توی خودش نگه‌داری می‌کنه. این اطلاعات توی یه مکان از حافظه ( RAM ) که بهش حافظه‌ی با دسترسی تصادفی می‌گن، ذخیره میشه تا بعدا بتونیم از این اطلاعات ذخیره شده استفاده کنیم. یه لیوان خالی رو در نظر بگیرید ...! اگه آب بکنید داخلش، لیوان حُکم متغییر رو بازی می‌کنه و آب هم اطلاعات رو. هر متغییری باید اسمش (‌ شناسه ) منحصر‌ به فرد باشه تا محل ذخیره برای هر متغییر مشخص باشه. این مثال رو ببینید :int integer = 20;&#xA;double _double = 20.0;شناسه‌ها ( integer و doubler_ ) چون متفاوت هستند، بدون هیچ‌گونه مسئله‌ای می‌تونین ازشون استفاده کنید. همون‌طور  که دقت می‌کنید، ما با استفاده از اُپریتور ( = ) به متغییرمون مقدار 20 و 20.0 رو دادیم و می‌تونید از این نام متغییر با این مقدار‌ها دسترسی داشته باشید. اما اگه به شکل زیر بنویسید :int number = 20;double number = 20.0;در IDEهای پیشرفته یه زیر خط قرمز رنگ زیر نام متغییرتون ( شناسه ) میکشن! چون نمی‌تونین دو تا متغییر هم‌نام تعریف کنید و کامپایلر بهتون خطا میده. باید نام‌ها متفاوت باشه تا محل ذخیره هر کدوم از متغییر‌ها مشخص باشه. این نکته رو هم بدونید که نام‌هایی که برای متغییرامون انتخاب می‌کنیم، حُکم یه نماینده از طرف یک مکان حافظه رو بازی می‌کنن.شما می‌تونین مقادیر متغییر‌هاتون رو تغییر بدید! یعنی اسم متغییرتون رو می‌نویسید که از قبل تعریف کردید و بعد اون مقدار که مورد‌نظرتون هست رو با توجه به نوع متغییر، بهش اختصاص میدید. به این شکل که می‌بینید :char letter_name = &#39;A&#39;;letter_name = &#39;B&#39;;الان متغییر letter_name مقدار جدید یعنی B رو توی خودش نگه‌داری می‌کنه.قوانین نام‌گذاری متغییر‌ها یه متغییر می‌تونه از حروف کوچیک و بزرگ ( ...A B C و یا ...a b c)، اعداد (  ...4 3 2 1 ) و زیر‌خط‌ها ( ـ )  تشکیل بشه.یه متغییر همیشه باید یا با یه حرف شروع بشه مثل name یا با زیر خط. مثل name_ و هیچ‌وقت نمی‌تونید از اعداد یا کارکتر‌های غیر‌مجاز مثل 1name یا name@ استفاده کنید.  البته از کارکتر‌های غیر‌مجاز مثل !,#,@ و مواردی دیگه، به هیج‌وجه نمی‌تونید استفاده کنید! اما از اعداد فقط در اول شناسه نمی‌تونید ولی بعد از اون در وسط یا آخر و یا هر جا دیگه از شناسه می‌تونید از اعداد استفاده کنید.و در نهایت هیچ قانونی واسه این‌که شناسه‌تون یه متر طولش باشه یا نه، وجود نداره. این دست خودتون هست. اما این رو بدونید که توی بعضی از کامپایلر شناسه از 31 کارکتر، مثلا؛ this_is_int_and_content_with_size‌ باشه، کامپایلر موقع اجرا با مشکل روبرو  میشه. هرچند که منطقی‌تر و بهتر‌ هست که از نام‌های با معنی‌ استفاده کنید. مثل first_name یا last_name. در ضمن این‌که شما می‌تونید از هر اسمی که خواستید برای شناسه‌هاتون استفاده کنید،‌ به شرطی که قوانین بالا رو رعایت کنید.نکته :‌ بالا توی قوانین هم گفتم که باید همیشه سعی کنین از نام‌های با معنی استفاده کنین. مثلا نام first_name بهتره یا fn؟ پس این رو هم در نظر داشته باشید. هر چه بیشتر از نام‌های بامعنی استفاده کنید، به همون‌صورت هم پروژتون خوانایی کًد‌هاش بالا میره.توی زبان برنامه‌نویسی C شما الزام میشید به تعیین نوع داده، قبل از این‌که بخواید اسم ( شناسه انتخاب کنید ). یعنی اگه به این شکل بخواید متغییر تعریف کنید : number = 0;چنین چیزی در زبان C وجود نداره و کامپایلر ازتون خطا میگیره! قبلش باید نوع رو تعیین کنید. مثلا :int number = 0; و این‌که وقتی مثلا این نوع رو تعریف کردید، نمی‌تونید یه نوع دیگه هم‌نام با این تعریف کنید! این مثال رو ببینید :int number = 0;&#xA;double number = 0.0; // Compiler give a errorالبته با توجه به این‌که در چند کامپایلر آنلاین و یک IDE که Qt Creator هست من این دو خط کُد زیر رو امتحان کردم، جواب داده و هیچ خطایی از سمت کامپایلر صادر نشد : int number = 0;&#xA;number = 20.0;انتظار می‌رفت که این دو خط کد، خط دوم خطا بده! چون ما نوع عددی رو تعریف کردیم نه نوع اعشاری! و در خط بعد number‌رو بهش مقدار اعشار 20.0 رو دادیم که کامپایلر‌هایی که من باهشون این دو خط کد رو اجرا کردم، به طور ضمنی ( Implicit ) عمل تبدیل داده (‌ Convert to Data Type ) رو انجام دادن (‌ بحث تبدیل داده در این جلسه نمی‌گُنجه و در جلسه‌ی مربوط به خودش، مورد بررسی قرار میگیره ). پس در نتیجه خطایی گرفته نمیشه، هرچند در این لینک گفته شده که نمی‌تونید مقدار عددی از نوع اعشار به نوع عددی صحیح بدید ( همون‌طور که گفتم، من امتحان کردم و کامپایلر‌ هیچ خطایی برای من نداد )‌!. شما می‌تونید از نوع عددی double یا flaot برای تعریف متغییر اعشاری استفاده کنید. به مثال زیر دقت کنید :flaot flaot_number = 0.0;&#xA;double double_number = 0.0;لیترال‌ها در Cمی‌رسیم به لیترال‌ها که شاید یکم براتون ترسناک باشه، همون‌طور که برای من اول ترسناک بود! لیترال‌ها همون داده‌های ثابتی هستند که به صورت مستقیم توی کُدنویسی ما استفاده میشن! مثلا 1 یا 2 یا حرف &#39;A&#39; و یا 2.0 و موارد دیگه. از این‌که میگم ثابت هستند یعنی این‌که شما اینارو به صورت مستقیم که استفاده کردید، نمی‌تونید این مقدار‌هارو تغییر بدید! این مثال رو ببیند :printf(&#34;%d&#34;, 1);printf(&#34;%c&#34;, &#39;A&#39;);مقدار‌های ما که ۱ یا A هستند به صورت مستقیم توی صفه نمایش چاپ میشن! اما شما می‌تونید مثلا بعد از دومین خط از کُد، یک از این مقدار‌هارو تغییر بدید؟! معلومه که نه. برای همین اسمشون لیترال هست. نوع اعداد صحیح در Cیه عدد صحیح، یه لیترال عددی هستش! چون یک عددصحیح مثل 1 یا 2 مرتبط با لیترال هست و یه لیترال محسوب میشه که بالا در لیترال‌ها در C هم درموردش صحبت کردم. اعداد صحیح یعنی  3 2 1 و ... که بدون هیچ‌گونه نقطه اعشار، کَسری یا نمایی هستند. توی زبان C سه نوع لیترال عدد که صحیح هستند نه اعشاری، وجود داره : دِسیمال ( Decimal ) که مبنای 10 هست و همون سیستم اعداد خودمونه! یعنی 4 3 2 1 0 و ... اُکتال ( Octal ) که مبنای 8 هست که به این صورت هست : 071, 081, 045 و ...هِگزادِسیمال ( Hexadecimal ) که مبنای 16 هستش و به این شکل باید ازش استفاده کنیم : 0x7f, 0x2a, 0x521 و ...توی زبان C، نوع عددی اُکتال با 0 و هگزادسیمال با 0x شروع میشه و همه‌ی این سه نوع رو هم میشه به صورت مستقیم استفاده کرد. نوع اعداد اعشاری در Cیک عدد اعشاری مثل 2.0، یک لیترال عددی هم هست که میشه به صورت مستقیم ازش استفاده کرد و به صورت کَسری یا نمایی میشه نمایشش داد. این مثال‌ها رو ببینید :float flaot_point_one = 2.0;float flaot_point_two = 0.0000567;flaot flaot_point_three = 0.22E-5 تو دو سه خط کد بالا دید که 2.0 و 0.0000567 همگی نقطه اعشار ( . )‌ دارن و به عنوان اعداد اعشاری محسوب میشن. ما چیزی رو تحت نماد علمی داریم که برای نمایش اعداد خیلی بزرگ یا کوچیک توی ریاضی و فیزیک مورد استفاده قرار می‌گیرن. خط سوم هم (‌ 0.22E-5 ) نماینگر نماد علمی هست. کارکتر‌ها در Cیه کارکتر (‌ مثلا A يا B یا هر چیزی دیگه‌ای ) یه لیترال هست که با دو جفت علامت تَک کُوتیشن ( Single Quotation ) نمایش داده میشه و فقط می‌تونه یه دونه کارکتر رو نگه‌داری کنه. این مثال‌ها رو ببیند : char character_one = &#39;A&#39;;char character_two = &#39;B&#39;;char character_three = &#39;C&#39;;بیش از دو کارکتر استفاده کنید، با این خطا روبرو میشید :// Codes &#xA;#include &lt;stdio.h&gt;int main(){    char ch = &#39;Abc&#39;;    printf(&#34;%c&#34;, ch);    return 0;}// Error &#xA;$gcc -o main *.c&#xA;main.c: In function ‘main’:&#xA;main.c:5:15: warning: multi-character character constant [-Wmultichar]&#xA;     char ch = &#39;A‌‌‌BC&#39;;&#xA;               ^~~~~&#xA;main.c:5:15: warning: overflow in implicit constant conversion [-Woverflow]&#xA;$main&#xA;Cهمون‌طور که می‌بینید، فقط کارکتر آخر یعنی حرف C رو توی خروجی نمایش میده. کارکتر‌های فرار در C توی برنامه‌نویسی به زبان C بعضی وقت‌ها ما احتیاج داریم که از کارکتر‌هایی که نمی‌تونن تایپ بشن  و توی C معنا و مفهوم خاصی دارن ازشون استفاده کنیم. مثلا برای رفتن به خط جدید ( New Line ) یا  علامت نقل و قول (Single Quotation and Double Quotation )، تَب و یا موارد دیگه. برای همین ما از کارکتر‌های فرار استفاده می‌کنیم که لیست اون‌هارو در اینجا براتون قرار میدم : \b                                                  Backspace&#xA;\f                                                   Form feed&#xA;\n                                                  Newline&#xA;\r                                                   Return &#xA;\t                                                   Horizontal tab&#xA;\v                                                  Vertical tab&#xA;\\                                                  Backslash&#xA;\&#39;                                                   Single quotation mark&#xA;\&#34;                                                  Double quotation mark&#xA;\?                                                  Question mark&#xA;\0                                                   Null characterاینجا \b یه به اندازه‌ی یه فاصله به عقب بر‌میگرده و اگه کارکتری سر راهش قرار بگیره، کیشو ماتش می‌کنه! وقتی کارکتر‌ها با بَک‌اِسلش (‌ \ )‌ همراه بشن، از حالت عادی خودشون خارج میشن و کامپایلر این نوع کارکتر‌هارو مدیریت می‌کنه (‌ جور دیگه‌ای باهاشون رفتار می‌کنه )‌.لیترال‌ رشته در C یه لیترال رشته، یه مجموعه یا دنباله‌ای از کارکتر‌ها هست که بین جفت کوتیشن یا دابل کوتیشن ( Double Quotation ) قرار گرفتن. این مثال رو ببیند :‌&#34;Mohammad&#34;&#34;Abasi&#34;&#34;Designer \n and \n Programmer : ) \n&#34;&#xA;&#34;&#34;&#xA;&#34;        &#34;&#xA;&#34;S&#34;هر چیزی بین دو کوتیشن قرار بگیره (‌ &#34;&#34; ) یه رشته محسوب میشه و عینن همون توی صحفه خروجی، نمایش داده میشه. البته به جز یک‌سری کارکتر‌ها مثل کارکتر‌های فرار ( n\ ) که نشانگر موس رو به خط بعدی میبره و اطلاعات رو از خط جدید شروع به چاپ کردن می‌کنه یا کارکتر‌های فرمت مثل d% که مقدار عدد صحیح رو نمایش میده. ثابت‌ها در C ثابت‌ها همون‌طور که از اسمشون معلوم هست، یعنی متغییری که یه بار تعریف میشه، نوع و اسم اون ( شناسه )‌ و مقدارش تعیین میشه و توی برنامه‌ همیشه مقدارش ثابت هست و تغییری نمی‌کنه که البته باید کلمه‌ی کلیدی const  که مخفف Constant یعنی ثابت هستش رو قبل از تعریف نوع و نام و مقدار متغییر تعریف کنید. مثال زیر رو ببینید :const int number = 20;const char letter_name = &#39;M&#39;;با نوشتن کلمه‌ی کلیدی const قبل از تعریق نوع داده، به کامپایلر اعلام می‌کنیم که این متغییر و درواقع ثابت، تا آخر برنامه مقدارش همین هست و تغییری نمی‌کنه! یعنی اگه شما بیاید بنویسید : // Codes&#xA;#include &lt;stdio.h&gt;int main(){    const char letter_name = &#39;M&#39;;    letter_name = &#39;A&#39;;  // Error     printf(&#34;%c&#34;, letter_name);    return 0;}// Error &#xA;main.c: In function ‘main’:&#xA;main.c:14:8: error: assignment of read-only variable ‘letter_name’&#xA;     letter_name = &#39;A&#39;;&#xA;        ^همین‌طور که در بالا می‌بینید، کامپایلر ازتون خطا میگیره و میگه که این ثابت هست و مقدارش نمی‌تونه تغییر کنه. اما میگه در حالت read-only  ( فقط خوندنی ) هستش. یعنی فقط می‌تونی اسمش رو صدا بزنی و از مقدارش استفاده کنی ولی نمی‌تونه مقدارش رو تغییر بدی. برای تعریق ثابت راه دیگه‌ای هم وجود داره که اونم استفاده از ماکِرو define# هست! ماکرو‌ها دستورات پیش‌پردازند هست که به مرور زمان و درطی جلسات  آینده درموردشون مفصل صحبت می‌کنیم. این مثال رو ببینید : #include &lt;stdio.h&gt;#define PI 3.14 // Define the PI with 3.14 value int main(){    printf(&#34;%lf&#34;, PI);    return 0;}پایان جلسه‌ی دوم منتظر نظرات ارزشمند شما عزیزان هستم. </description><category>Mohammad Abasi | محمد عباسی</category><author>Mohammad Abasi | محمد عباسی</author><pubDate>Mon, 21 Sep 2020 23:53:05 +0330</pubDate></item><item><title>زبان C - جلسه‌ی اول ( کلمات کلیدی و شناسه‌ها یا Keywords &amp; Identifier )</title><link>https://virgool.ir/@mohammad78/زبان-c-بخش-اول-hdt6g0xhlwby</link><description>جلسه‌ی اول از دوره‌ی آموزشی زبان برنامه‌نویسی C به زبانی سادهبا سلام و عرض ادب و احترام خدمت شما عزیزان دل. در خدمت شما هستم با آموزش زبان برنامه‌نویسی C. از اونجایی که خودم شیفته‌ی این زبان و بچه‌ی اون یعنی ++C هستم و تازه این زبان رو دارم یاد می‌گیرم، هر اونچه رو که یاد میگیرم و تجربه می‌کنم، با زبونی ساده در اختیارتون می‌ذارم. معرفی زبان برنامه‌نویسی C زبان برنامه‌نویسی C یه زبان برنامه‌نویسی قدرتمند و همه‌منظوره هستش! این‌که میگم همه‌منظوره یعنی در حوزه‌های مختلف کاربرد داره! مثلا توی ساخت نرم‌افزار‌هایی مثل سیستم‌عامل‌ها ( Operating Systems )، پایگاه داده‌ها، بانک‌های اطلاعاتی ( DataBase )، کامپایلر‌ها ( Compilers ) و یا توی بحث الکترونیک و میکرو‌کنترلر‌ها و موارد دیگه. یعنی شما این زبان رو یاد بگیرید با یه تیر دو نشون زدید!  تازه! اگه از این زبان شروع به یادگیری کنید، چون پایه و مادر اکثر زبان‌های برنامه‌نویسی حال حاضر هست که داریم ازشون استفاده می‌کنیم، به راحتی می‌تونید بعد از یادگیری این زبان، زبان دیگه رو یاد بگیرید. این زبان یه انتخاب عالی می‌تونه باشه برای کسایی که تازه می‌خوان برنامه‌نویسی رو شروع کنند و درواقع مُبتدی هستن. هدف من در این دوره‌ی آموزشی یادگیری ساده شما توی این زبان هستش و قدم به قدم همراه شما هستم تا این زبان قدرتمند رو یاد بگیرید.شناسه‌ها ( متغییر‌ها ) و کلمات کلیدی در C اینجا ما درباره‌ی کلمات کلیدی که درواقع کلماتی رِزرو شده توی زبان C هستند صحبت می‌کنیم. بعد از اون درمورد قوانین و نحوه‌ی نام‌گذاری شناسه‌ها هم توضیحاتی میدم. این نکته رو به خاطر داشته باشید که کلامت رِزرو شده توی هر زبان برنامه‌نویسی به این معنیه که شما حق انتخاب اون کلمه‌ی کلیدی و رِزرو شده رو توی نام‌گذاری متغییر‌ها، توابع و کلا هر چیزی که نیاز به نام‌گذاری داشته باشه رو ندارید. مثل این می‌مونه که شما رفتید و هُتل اتاق رِزرو کردید، طبیعتا دیگه نمیان که اتاق شما رو به کسی دیگه‌ای بدن و فقط اون اتاق مختص شماست. کارکتر‌ها در C کارکتر‌ها درواقع همون حروف الفبا انگلیسی هستند که توی زبان C وجود دارن. حالا اینجا نکته‌ای که هست و باید بهش دقت کنید، اینه‌که حروف الفبا دو تا دسته‌ی کوچیک یعنی : a b c و ... و بزرگ مثل A B C و ... هستن.  بعضی کارکتر‌ها هستن که به نان کارکتر‌های خاص  خونده میشن! مثل (), {}, &lt;&gt;  و ... که در ادامه لیستی از اون‌هارو براتون می‌‌ذارم. این کارکتر‌ها متفاوت از حروف الفبا هستن. زبان C هم حروف بزرگ و هم حروف کوچیک رو قبول می‌کنه. این‌که بتونید برای متغییر‌‌ها و توابعتون اسم انتخاب کنید و این‌طور نیست که فقط می‌تونید از حروف بزرگ یا کوچیک استفاده کنید. کارکتر‌های خاص در C , &lt; &gt; . _ ( ) ; $ : % [ ] # ? &#39; &amp; { } &#34; ^ ! * / | - \ ~ + اعداد در C اعداد هم که توی زبان‌های برنامه‌نویسی هستن و مورد استفاده قرار می‌گیرن! مثلا 5 4 3 2 1 و ... کارکتر‌های فضای خالی در C کارکتر‌هایی هستند که برای ما یک‌سری از کار‌ها رو انجام میدن! مثل ایجاد فضای خالی روی صحفه خروجی کُد‌هامون، رفتن به خط جدید، ایجاد تَب‌های افقی، سر سطر رفتن نشانگر موس، ایجاد یک صحفه‌ی جدید. کلمات کلیدی در Cکلمات کلیدی همون‌طور که بالا‌تر گفتم، کلماتی هستند که از قبل توی زبان C و زبان‌های برنامه‌نویسی دیگه توسط سازنده‌ی زبان تعریف شدن و درواقع کلمات رِزرو شده هستن. این کلمات کلیدی برای کامپایلر‌ها معنای خاصی دارن. یعنی این‌که کامپایلر‌ها وقتی  با این کلمات کلیدی برخورد کنند، یه رفتار خاصی باهاشون دارن که نتیجش میشه مثلا ذخیره فلان متغییر با این اندازه و این نوع در فلان مکان حافظه! حالا این متغییر بود که کامپایلر در اصل با نوع اون کار داره و وقتی نوع اون رو بشناسه، اندازه‌ای که از حافظه طلب می‌کنه رو هم متوجه میشه و به این ترتیب ما می‌تونیم از متغییره که تعریف کردیم استفاده کنیم. کلمات کلیدی بخشی از Syntax ( قوانین یک زبان )  زبان‌های برنامه‌نویسی هستند و هیچ‌وقت نمی‌تونن برای اسم متغییر‌های ما استفاده بشن. این مثال رو ببیند تا توضیح بیشتری بدم : int number;اینجا کلمه‌ی int یه کلمه‌ی کلیدی هست که داره یه نوع عددی صحیح ( Integer ) رو به نمایش می‌ذاره! خود کلمه‌ی int مخفف integer به معنای عدد صحیح هست و الان ما یک متغییر از نوع int و با نام number داریم. زبان C به حروف بزرگ و کوچیک حساسه یعنی ( case sensitive ) هستش. این مثال رو ببینید تا بهتر متوجه منظورم بشید : int number; int Number; الان کامپایلر اگه بخواد این رو اجرا کنه، خطا باید بده! چون دو تا number داریم. ولی این‌طور نیست و کامپایلر برنامه رو اجرا می‌کنه. چون همون‌طور که گفتم، زبان C به بزرگی و کوچیکی حروف حساسه و بین number و Number تفاوت قائله و هر دوتاشون رو یکی نمی‌دونه. اما درمورد کلمات کلیدی این موضوع کمی فرق می‌کنه! همه‌ی کلمات کلیدی الزاما باید با حروف کوچیک نوشته بشن. یعنی اگه بنویسید Int این کلمه اصلا شناخته‌شده نیست توی زبان C تا این‌که بخواید اون رو به عنوان کلمه‌ی کلیدی انتخاب کنید. باید به این شکل بنویسید : int, double, char  و ... من اینجا لیستی از همه‌ی کلمات کلیدی که در ANSI C مجاز هست رو براتون می‌ذارم : auto&#xA;double&#xA;int&#xA;struct &#xA;break&#xA;else&#xA;long&#xA;switch&#xA;case&#xA;enum&#xA;register&#xA;typedef&#xA;char&#xA;extern&#xA;return&#xA;union&#xA;continue&#xA;for &#xA;signed &#xA;void &#xA;do&#xA;if&#xA;static&#xA;while&#xA;default &#xA;goto&#xA;sizeof&#xA;volatile&#xA;const&#xA;float &#xA;short &#xA;unsignedهمه‌ی این‌ها کلمات کلیدی توی موضوع مربوط به خودشون مورد بحث و بررسی قرار میگیرن، پس از این بابت نگران بَلد بودن یا نبودن این کلمات کلید نگران نباشید. شناسه‌های در C شناسه‌ها همون اسم‌هایی هستند که به متغییر‌ها، توابع و ساختار‌ها و موارد دیگه میدیم. این مثال‌ها رو ببیند  :‌int number;یا void SetNumber(){}یاstruct Numbers{};که همه‌ی این‌هایی که در بالا می‌بینید، number, SetNumber و Numbers شناسه یا نام هستند که ما با استفاده از این شناسه‌ها می‌تونیم عمل مورد نظرمون که می‌تونه حالا دسترسی به مقدار مثلا متغیر یا تابعمون رو فراخوانی (‌ Call ) کنیم و کار‌های دیگه‌ای که موردنظرمون هست. بدون این شناسه‌ها عملا کاری نمی‌تونیم بکنیم. چون این شناسه‌ها و نام‌ها هستند که به ما اجازه‌ی انجام کار مورد‌نظرمون رو میدن. این رو در نظر داشته باشید که نام‌ها باید منحصر‌ به فرد باشن و توی زبان‌های برنامه‌نویسی دو تا نام متغیر نمی‌تونن عین هم باشن! این مثال رو ببینید :‌int number; double number; // Compiler give a error اما اگه به این شکل تعریف کنیم متغییرمون رو :int number_one;&#xA;int number_two;دیگه خبری از خطا از طرف کامپایلر (‌ مترجم )‌ نیست. چون الان ما دو تا شناسه یا بهتره بگم نام متفاوت داریم. نام‌ها باید منحصر‌به فرد باشن تا در طول مدتی که برنامه در حال اجرا هست، به اون‌ها دسترسی داشته باشیم. اینجا دو تا نام number_one و number_two‌ شناسه یا نام هستند که با نوع داده‌ی int همراه شدن و یک متغییر رو شکل دادن. این نکته رو به خاطر داشته باشید که شما به هیچ‌وجه نمی‌تونید از نوع داده مثلا int‌ برای شناسه استفاده کنید! چون int یه کلمه‌ی کلیدی و رِزرو شده هست. قوانین نام‌گذاری شناسه‌ها یه شناسه می‌تونه از حروف کوچیک و بزرگ ( ...A B C و یا ...a b c)، اعداد (  ...4 3 2 1 ) و زیر‌خط‌ها ( ـ ) که معتبر هستند تشکیل بشه. یه شناسه همیشه باید یا با یه حرف شروع بشه مثل name یا با زیر خط. مثل name_ و هیچ‌وقت نمی‌تونید از اعداد یا کارکتر‌های غیر‌مجاز مثل 1name یا name@ استفاده کنید.  البته از کارکتر‌های غیر‌مجاز مثل !,#,@ و مواردی دیگه، به هیج‌وجه نمی‌تونید استفاده کنید! اما از اعداد فقط در اول شناسه نمی‌تونید ولی بعد از اون در وسط یا آخر و یا هر جا دیگه از شناسه می‌تونید از اعداد استفاده کنید.از کلمات کلید و رِزرو‌ شده مثل int, double,while,for و کلمات کلیدی دیگه نمی‌تونید ازشون به عنوان شناسه استفاده کنید. و در نهایت هیچ قانونی واسه این‌که شناسه‌تون یه متر طولش باشه یا نه، وجود نداره. این دست خودتون هست. اما این رو بدونید که توی بعضی از کامپایلر شناسه از 31 کارکتر، مثلا؛ this_is_int_and_content_with_size‌ باشه، کامپایلر موقع اجرا با مشکل روبرو  میشه. هرچند که منطقی‌تر و بهتر‌ هست که از نام‌های با معنی‌ استفاده کنید. مثل first_name یا last_name. در ضمن این‌که شما می‌تونید از هر اسمی که خواستید برای شناسه‌هاتون استفاده کنید،‌ به شرطی که قوانین بالا رو رعایت کنید.  پایان جلسه اولمنتظر نظرات ارزشنمد شما هستم دوستان عزیزم.</description><category>Mohammad Abasi | محمد عباسی</category><author>Mohammad Abasi | محمد عباسی</author><pubDate>Sun, 20 Sep 2020 17:04:16 +0430</pubDate></item></channel></rss>