'''enum'''
متغیر enum یا شمارگان ، یک متغیر پایه نیست .، بدین معنا که نمی تواند نوع مستقلی از متغیر را ایجاد کند ، بلکه روشی است برای ایجاد متغیر هاییمتغیرهایی از نوع صحیح ( int ) که ثابت مقداری هستند ( رجوع شود به ثابتها ) و به تعداد تعیین شده توسط برنامه نویس ایجاد می شوندمیشوند که به صورت خودکار و متوالی مقدار دهی میمیگردند گردند. .ضمناً بعد از نوشتن کلیدواژه enum شما مجاز هستید تا یک نام یا همان شناسه نیز بنویسید که مختص همان enum می باشدمیباشد و این به شما کمک می کند تا اگر از چند enum استفاده نموده ایدنمودهاید ، طی احضار آنها برای استفاده در برنامه ، بتوانید آنها از یکدیگر تفکیک نمائید و بدیهی است که در صورت عدم داشتن نام یا شناسه ، قادر به تفکیک آنها نخواهید بود ( عملاً نمیتوانید از آنها استفاده کنید ) . همچنین ایجاد شناسه شما را قادر می سازد تا اگر تصمیم به ایجاد متغیر هاییمتغیرهایی که میخواهیدمیخواهید مقدار آنها را تغییر دهید را از روی آن enum ( یا همان متغیر شمارگان ) ایجاد کنید ، بتوانید این کار را انجام دهید . پس از نوشتن شناسه جفتی از کروشه های باز و بسته باید موجود باشند که در آنداخل آنها دست کم یک نام یا همان شناسه نوشته گردد . روش مقدار دهی C برای متغیر های شمارگان یا همان enum بدین روال است که از مقدار 0 برای اولین شناسه استفاده می نمایدمینماید و در شناسه هایشناسههای بعدی یک واحد مثبت به مقدار قبلی اضافه می نماید .مینماید
شما مجازید تا برای هر یک از شناسه هاشناسهها مقدار بدهید ولی اگر مثلاً فقط برای یکی از آنها مقدار 20 بدهید ، شناسه بعدی مقدار 21 خواهد گرفت و همچنین دقت کنید که نوع متغیر های enum صحیح علامت گذاری شده می باشدباشند و شما می توانیدمیتوانید مقادیر منفی را نیز وارد نمائید اما قادر به وارد کردن مقادیر اعشاری نیستید . شناسه ها را همواره باید با علامت کالن ( , ) از یکدیگر جدا نمائید و همانند ایجاد هر متغیر دیگری در پایان از علامت سمی کالن ( ; ) استفاده نمائید.
مثال :
<source lang="C#">
enum fruit { grape, cherry, lemon=16, kiwi } apple=kiwi;
</source>
در اینجا مقدار grape مقدار عددی 0 احتساب می گردد و سپس cherry مقدار 1 ، lemon مقدار 216 , kiwi مقدار 317 ؛ این مقادیر غیر قابل تغییر در ادامه برنامه خواهند بود . اما مقدار apple قابل تغییر می باشدمیباشد که مقدار اولیه تعیین شده برای آن 317 خواهد بود . با کمک شناسه enumنوشته میشده برای enum توانمیتوان علاوه بر بعد از کروشه بسته می توان، در ادامه برنامه ، متغیر هایی ایجاد نمود که همانند متغیر های صحیح دیگر ، مقدار آنها نیز قابل تغییر است :
<source lang="C#">
enum fruit mango;
</source>
در اینجا با کمک شناسه enum خود که fruit است یک متغیر صحیح به نام mango اعلان نمودهایم و در ادامه میتوانیم آن را مقدار دهی اولیه نموده و در ادامه نیز همانند یک متغیر صحیح معمولی مقدار آن را تغییر دهیم
'''نحوه ثابت کردن یک متغیر'''
در مبحث ثابت هاثابتها بیان نمودیم که یک متغیر را می توان ثابت مقداری نمود . بدین معنا که مقدار آن پس از تعیین شدن ، در ادامه برنامه قابل تغییر نمی باشدنمیباشد . برای این منظور نیز از کلیدواژه const استفاده می نمائیممینمائیم . اکنون که نحوه اعلان و تعریف متغیر هامتغیرها را مشاهده نمودید می توانیممیتوانیم مثالی برای نحوه تعریف یک متغیر ثابت بزنیم تا به صورت ملموس ، آشنا گردید . مثال :
<source lang="C#">
</source>
کلیدواژه const را پیش از کلیدواژه int نوشته و سپس به آن مقدار دهی اولیه نمودیم ، اما نکته اصلی اینجاست که پس از تعیین مقدار برای آن نمی توانیمنمیتوانیم در جای دیگری از برنامه مجدداً به آن مقدار بدهیم یا متغیر a را در یک تابع قرار دهیم که بخواهد مقدار آن را تغییر دهد . در این صورت کامپایلر خطا، خواهداعلام خطا گرفتمیکند
=== نکته مهم ===
یک نکته در مورد مقدار دهی به متغیر ها حائز اهمیت زیادی می باشد و آن اینکه علاوه بر مقدار عددی ( اعشاری یا صحیح ) و کاراکتری متناسب با هر نوع متغیر که شما می توانید آن رامیتوانید داخل متغیر خود جای دهید ، شما قادر به تخصیص یک متغیر دیگر و یا یک تابع به عنوان مقدار و موجودی متغیر خود هستید ( یعنی مقدار و موجودی یک متغیر را نام و شناسه یک متغیر دیگر قرار میدهید ) . اولین شرط ، این است که مقداری که متغیر جایگذاری شده دارد باید با نوع متغیر شما متناسب باشد . مثلاً اگر متغیر b را داخل متغیر a می گذاریدمیگذارید ( به عنوان مقدار و موجودی متغیر a تعریف می کنیدمیکنید ) باید مقداری که b دارد از نوع متغیر a باشد . مثلاً یک متغیر کاراکتری را نمی توانیدنمیتوانید به عنوان مقدار و موجودی یک متغیر صحیح تعریف کنید . شرط دوم نیز همانند شرط اول است ولی در مورد تابعی است که شما می خواهیدمیخواهید آن را به عنوان مقدار و موجودی یک متغیر استفاده کنید . مثلاً متغیر a یک متغیر صحیح int است ، اگر می خواهیدمیخواهید مقدار آن را یک تابع بنویسیدقرار دهید تا خروجی آنتابع به عنوان مقدار و موجودی متغیر a قرار بگیردذخیره گردد ، باید خروجی تابع حتماً یک عدد صحیح باشد
در ادامه باید گفت که برخی از مقادیر در برخی از کامپایلر هاکامپایلرها به یکدیگر ، قابل تبدیل هستند . در مبحث تبدیل و جایگزینی دادهها به آن پرداختهایم اما برای اینکسب منظوراطمینان بایداز دفترچهچگونی راهنمایتبدیل در کامپایلر خود راباید دفترچه راهنمای آن مطالعهمراجعه کنید . ولی این تبدیل کاملاً منطقی است و بدیهیست شما هرگز قادر نخواهید بود یک حرف را داخل یک متغیر صحیح قرار بدهید . اما برخی از کامپایلر هاکامپایلرها زمانی که با یک عدد اعشاری رو به رو می شوند که به عنوان مقدار یک متغیر صحیح تعیین شده ، به جای خطا گرفتن از شما ، قسمت اعشاری آن را نادیده می گیرند ! پس بهتر است اگر میخواهیدمیخواهید کمی با خیال راحت در این کامپایلر هاکامپایلرها برنامه بنویسید ، نکات ضروری نحوه کامپایل آن را با دقت مطالعه کنید
[[رده:زبان برنامه نویسی سی]]
|