خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


آموزش زبان ++C : کلمات کلیدی و قوانین نام گذاری شناسه ها

آموزش زبان ++C : کلمات کلیدی و قوانین نام گذاری شناسه ها
نویسنده : امیر انصاری
کلمات کلیدی

سیستم یکپارچۀ سازمانی راهکار



زبان برنامه نویسی ++C مجموعه ای از 84 کلمه کلیدی (در نسخه 14 از زبان ++C) را برای استفاده داخلی خودش رزو کرده است. به این کلمات رزرو شده توسط ++C کلمات کلیدی (keywords) و یا کلمات رزرو شده، گفته می شود، هر کدام از این کلمات کلیدی معنای خاصی برای زبان ++C دارد.

در ادامه لیست کامل کلمات کلیدی (keywords) در نسخه 14 از زبان ++C آمده است.

آموزش زبان ++C : کلمات کلیدی و قوانین نام گذاری
  • * : این 15 کلمه کلیدی که در کنار آنها یک ستاره (*) قرار گرفته است در نسخه C++98 اضافه شده اند. ممکن است در برخی از کتابهای مرجع خیلی قدیمی آنها را نبینید.
  • ** : این 9 کلمه کلیدی که در کنار آنها دو ستاره (**) قرار گرفته است در نسخه C++11 اضافه شده اند. اگر کامپایلر ++C شما با نسخه C++11 سازگار نباشد، ممکن است این کلمات کلیدی به درستی کار نکنند.

همچنین در C++11 دو شناسه (identifier) خاص اضافه شده است : override و final. این دو شناسه وقتی در جاهای خاصی استفاده شوند، معنای خاصی می دهند.

شما تا اینجای این دوره آموزشی برخی از این کلمات کلیدی را استفاده کرده اید، مانند void ، int و retuen . این کلمات کلیدی به همراه یک مجموعه از عملگرها (operators) و شناسه های خاص (special identifiers) کل زبان ++C را معرفی می کنند (دستورات پیش پردازنده (preprocessor) از این موارد استثناء شده اند). از آنجایی که این کلمات کلیدی و شناسه های خاص (special identifiers) برای ++C معنای خاصی می دهند، معمولاً در IDE ها این موارد را با رنگ متفاوتی (معمولا رنگ آبی) متمایز می کنند، تا آنها بیشتر به چشم بیایند.

همزمان که در این دوره آموزشی پیش می روید، با کاربرد تک تک این موارد آشنا خواهید شد.

قوانین نامگذاری شناسه ها (Identifier naming rules)


نام متغیرها، توابع، انواع داده ها و سایر انواع اشیاء در زبان ++C یک شناسه (identifier) نامیده می شود. زبان ++C در نامگذاری شناسه ها به شما انعطاف پذیری زیادی می دهد. با این حال، در هنگام نامگذاری شناسه ها یکسری قوانین وجود دارند که باید آنها را رعایت کنید :

  • یک شناسه (identifier) نمی تواند یک کلمه کلیدی باشد. کلمات کلیدی برای کاربردهایی خاص رزرو شده اند.

  • یک شناسه (identifier) باید متشکل از حروف الفبا (حروف کوچک یا بزرگ الفبا)، اعداد و کاراکتر زیر خط (underscore) باشد. این به این معنا می باشد که در اسامی شناسه ها نمی توانید از نمادها (بجز زیرخط) استفاده کنید. همچنین نمی توانید از فاصله یا تب (space or tab) در اسامی شناسه ها استفاده کنید.

  • یک شناسه (identifier) الزاماً باید با یک حرف الفبا و یا زیر خط آغاز گردد. یک شناسه نمی تواند با اعداد آغاز شود.

  • زبان ++C بین حروف کوچک و حروف بزرگ تمایز قائل می شود. به عنوان مثال از دید ++C اسامی nvalue و nValue و NVALUE سه چیز کاملاً متفاوت هستند.

حالا که می دانید چگونه یک متغیر را نامگذاری کنید، بیایید در مورد شیوه نامگذاری متغیرها و توابع صحبت کنیم.

اولین نکته اینست که به صورت قراردادی در زبان ++C اسامی متغیرها با یک حرف کوچک آغاز می شوند. اگر نام متغیر شما صرفاً یک کلمه باشد، کل آن کلمه با حروف کوچک نوشته می شود.

int value; // correct

int Value; // incorrect (should start with lower case letter)
int VALUE; // incorrect (should start with lower case letter)
int VaLuE; // incorrect (see your psychiatrist) ;)

به طور کلی، توابع نیز با یک حرف کوچک آغاز می شوند (هر چند در این زمینه اختلاف نظرهایی وجود دارد). ما در این دوره آموزشی اسامی توابع را با حروف کوچک آغاز می کنیم، همانطور که تابع main با حروف کوچک آغاز شده است و همینطور همه توابع موجود در کتابخانه استاندارد ++C نیز با حروف کوچک آغاز شده اند.

شناسه هایی که اسامی آنها با حروف بزرگ آغاز شده اند معمولاً به عنوان structs، classes و enumerations مورد استفاده قرار گرفته اند. در مورد اینها در آینده و طی همین دوره آموزشی صحبت خواهیم کرد.

اگر نام متغیر یا تابع متشکل از چند کلمه باشد، معمولاً دو قانون در مورد آنها وجود دارد : یا می توانید کلمات را با زیرخط (underscore) از یکدیگر جدا کنید، یا ابتدای کلمات بعدی را با حروف بزرگ بنویسید، به این روش دوم در نامگذاری، روش کوهان شتری (CamelCase) گفته می شود، چرا که حروف بزرگ در لابلای حروف کوچک مانند کوهان شتر، برجسته به نظر می رسند.

int my_variable_name; // correct (separated by underscores)
void my_function_name() // correct (separated by underscores)

int myVariableName; // correct (intercapped/CamelCase)
void myFunctionName(); // correct (intercapped/CamelCase)

int my variable name; // invalid (whitespace not allowed)
void my function name(); // invalid (whitespace not allowed)

int MyVariableName; // valid but incorrect (should start with lower case letter)
void MyFunctionName(); // valid but not best practice

در این دوره آموزشی، ما معمولاً از روش کوهان شتری (CamelCase) برای نامگذاری شناسه ها استفاده خواهیم کرد، چرا که خواندن آنها آسانتر است (معمولاً در کدهای متراکم تر احتمال اشتباه گرفتن زیرخط با فاصله وجود دارد). اما در کتابخانه استاندارد ++C برای نامگذاری متغیرها و توابع از زیر خط استفاده شده است. بعضی اوقات هم این قانون را شکسته اند و از زیر خط برای اسامی متغیرها و از روش کوهان شتری (CamelCase) برای نامگذاری توابع استفاده کرده اند.

یک نکته مهم را هم در نظر داشته باشید و آن اینست که اگر با کد شخص دیگری کار می کنید، بهتر است استانداردهای نامگذاری آن شخص را رعایت کنید، تا اینکه کدها یکدستی خودشان را حفظ کنند و خواناتر گردند.

یک نکته دیگر هم اینست که در هنگام نامگذاری شناسه ها از زیرخط به عنوان شروع کننده نام استفاده نکنید، چرا که این نوع اسامی معمولاً در مورد سیستم عامل (OS)، کتایخانه های کد و کامپایلر مورد استفاده قرار گرفته اند.

نکته خیلی مهم دیگر و شاید مهمترین قانون اینست که در هنگام نامگذاری شناسه ها، نامی را به آنها اختصاص بدهید که کارکرد واقعی آنها را در نام نشان بدهد. برنامه نویسان کم تجربه تر، معمولاً اسامی خیلی کوتاه و مختصری را به متغیرها و توابع اختصاص می دهند، تا در زمان تایپ کردن صرفه جویی کنند، و تصورشان بر اینست که معنای متغیر کاملا واضح است. این مساله یک اشتباه بزرگ است. در حالت ایده آل، باید اسامی متغیرها به گونه ای باشد که شخص دیگری که کد شما را می خواند بتواند به راحتی و در کمترین زمان ممکن آن را درک کند و کاربرد متغیرها را از روی نامشان بفهمد. ضمن اینکه اگر خود شما هم 3 ماه بعد به کدتان سر بزنید، کارکرد برنامه را فراموش کرده اید و در صورتی که اسامی با معنایی برای متغیرها گذاشته باشید، قطعاً از خودتان تشکر خواهید کرد. هر چقدر کد شما پیچیده تر باشد، باید اسامی خواناتری بر روی متغیرها بگذارید.

در تصویر زیر مثال هایی از نحوه نامگذاری خوب و بد آورده شده است :

آموزش زبان ++C : کلمات کلیدی و قوانین نام گذاری
* توجه : استفاده از اسامی که در جدول با ستاره مشخص شده اند برای متغیرهای بدیهی و کم اهمیت (trivial variable) مانعی ندارد، مانند متغیرهایی که به عنوان شمارنده حلقه و یا توابع بی اهمیت ریاضی، استفاده می شوند.

نکته حائز اهمیت دیگر اینست که قرار دادن کامنت (توضیحات) برای کدهای واضح، می تواند راه را طولانی تر کند. برای مثال، فرض کنیم ما متغیری با نام numberOfChars معرفی کرده ایم که قرار است تعداد کاراکترها در یک متن را در خودش ذخیره کند. اگر برای این متغیر توضیحات زائد بنویسیم خواننده کد ممکن است دچار سردرگمی بشود و وقتش بیهوده تلف گردد.

حالا فرض کنیم نام متغیری را numberOfCharsIncludingWhitespaceAndPunctuation گذاشته ایم، که یک نام طولانی می باشد، در اینجا قرار دادن یک کامنت می تواند به کاربر کمک کند، بهتر است این نام را کوتاه تر کنیم و در کنارش توضیح بدهیم که تعداد کاراکترها با در نظر گرفتن فاصله ها و نشانه گذاری ها محاسبه شده است.

// holds number of chars in a piece of text -- including whitespace and punctuation!
int numberOfChars;


آموزش قبلی : آموزش زبان ++C : چرا توابع مفید هستند؟ چگونه از توابع به صورت موثر استفاده کنیم؟

آموزش بعدی : آموزش زبان ++C : مروری بر محدوده محلی (local scope)



نمایش دیدگاه ها (0 دیدگاه)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.