TAHA
01-03-2010, 02:47 PM
اعلان ثوابت
بر خلاف متغیرها که در هر نقطه از اجرای برنامه مقدار آنها می تواند تغییر کند ثوابت مقادیری هستند که در برنامه وجود دارند ولی قابل تغییر نیستند برای اعلان ثوابت به دو روش عمل می شود :
1- استفاده از دستود #define
2- استفاده از دستور const
برای اعلان ثوابت از طریق دستور #define به صورت زیر عمل می شود :
#define <مقدار> <نام ثابت>
نامگذاری برای ثوابت از قانون نامگذاری برای متغیرها تبعیت می کند. مقداری که برای ثابت تعیین می شود نوع ثابت را نیز مشخص می کند. دقت داشته باشید که در انتهای دستور #define علامت ; قرار نمی گیرد. علتش این است که این دستور از دستورات پیش پردازنده استنه دستور زبان C++ پیش پردازنده برنامه سیستم است که قبل از ترجمه برنامه توسط کامپایلر تغییراتی در برنامه ایجاد می کند. پیش پردازنده مقدار ثابت را که در دستور #define آمده است به جای نام ثابت در برنامه قرار می دهد و این دستور در زمان اجرا وجود ندارد به ثوابتی که بدین صورت تعریف می شوند ماکرو نیز گفته می شود برای تفکیک اینگونه ثوابت از متغیرهای برنامه بهتر است نام آنها با حروف بزرگ انتخاب شود.
#define M 100
#define PI 3.14
اعلان ثوابت PI و M با دستور #define دستور اول مقدار M را برابر با 100 و دستور دوم مقدار PI را برابر با 3.14 تعیین می کند.
برای اعلان ثوابت با دستور const به صورت زیر عمل می شود :
;const <مقدار>=<نام ثابت> <نوع داده>
در این شکل کلی نوع داده یکی از انواع موجود است نام ثابت مثل نام متغیرها انتخاب می شود که مقدار ثابت با علامت = در آن قرار می گیرد.
;
const int n=100 , int count=50
;const signed char x=’a’
تعیین ثوابت n و count از نوع int و با مقادیر 100 و 50 و ثابت x از نوع signed char و با مقدار ‘a’
اگر پس از اعلان ثوابت در ادامه برنامه سعی کنید مقادیر آنها را عوض کنید کامپایلر خطایی را به شما اعلان خواهد کرد.
کاربرد ثوابت در برنامه از امتیازات خاصی برخوردار است. به عنوان مثال اگر بخواهید در هر بار اجرای برنامه مقدار ثابت n را عوض کنید لازم نیست کلیه دستورات برنامه را که با n سرو کار دارند تغییر دهید بلکه کافی است مقدار n را در دستور const به مقدار مورد نظر تغییر دهید.
بر خلاف متغیرها که در هر نقطه از اجرای برنامه مقدار آنها می تواند تغییر کند ثوابت مقادیری هستند که در برنامه وجود دارند ولی قابل تغییر نیستند برای اعلان ثوابت به دو روش عمل می شود :
1- استفاده از دستود #define
2- استفاده از دستور const
برای اعلان ثوابت از طریق دستور #define به صورت زیر عمل می شود :
#define <مقدار> <نام ثابت>
نامگذاری برای ثوابت از قانون نامگذاری برای متغیرها تبعیت می کند. مقداری که برای ثابت تعیین می شود نوع ثابت را نیز مشخص می کند. دقت داشته باشید که در انتهای دستور #define علامت ; قرار نمی گیرد. علتش این است که این دستور از دستورات پیش پردازنده استنه دستور زبان C++ پیش پردازنده برنامه سیستم است که قبل از ترجمه برنامه توسط کامپایلر تغییراتی در برنامه ایجاد می کند. پیش پردازنده مقدار ثابت را که در دستور #define آمده است به جای نام ثابت در برنامه قرار می دهد و این دستور در زمان اجرا وجود ندارد به ثوابتی که بدین صورت تعریف می شوند ماکرو نیز گفته می شود برای تفکیک اینگونه ثوابت از متغیرهای برنامه بهتر است نام آنها با حروف بزرگ انتخاب شود.
#define M 100
#define PI 3.14
اعلان ثوابت PI و M با دستور #define دستور اول مقدار M را برابر با 100 و دستور دوم مقدار PI را برابر با 3.14 تعیین می کند.
برای اعلان ثوابت با دستور const به صورت زیر عمل می شود :
;const <مقدار>=<نام ثابت> <نوع داده>
در این شکل کلی نوع داده یکی از انواع موجود است نام ثابت مثل نام متغیرها انتخاب می شود که مقدار ثابت با علامت = در آن قرار می گیرد.
;
const int n=100 , int count=50
;const signed char x=’a’
تعیین ثوابت n و count از نوع int و با مقادیر 100 و 50 و ثابت x از نوع signed char و با مقدار ‘a’
اگر پس از اعلان ثوابت در ادامه برنامه سعی کنید مقادیر آنها را عوض کنید کامپایلر خطایی را به شما اعلان خواهد کرد.
کاربرد ثوابت در برنامه از امتیازات خاصی برخوردار است. به عنوان مثال اگر بخواهید در هر بار اجرای برنامه مقدار ثابت n را عوض کنید لازم نیست کلیه دستورات برنامه را که با n سرو کار دارند تغییر دهید بلکه کافی است مقدار n را در دستور const به مقدار مورد نظر تغییر دهید.