تعريف ثوابت در C++

در اين بخش مي‌توانيد در مباحث مربوط به زبانهاي بر پايه C به بحث بپردازيد

مدیران انجمن: athlon64x2, abbas.m.k, شوراي نظارت

ارسال پست
New Member
پست: 7
تاریخ عضویت: پنج شنبه 14 آذر 1387, 5:46 pm

تعريف ثوابت در C++

پست توسط yrpetroodi » پنج شنبه 28 آذر 1387, 11:37 am

سلام....
لطفا برایم توضیح دهید که چه تفاوتی در تعریف ثوابت با دستور #define و const وجود دارد...

New Member
نمایه کاربر
پست: 12
تاریخ عضویت: چهار شنبه 16 مرداد 1387, 8:39 pm

پست توسط samaneh87 » پنج شنبه 28 آذر 1387, 10:21 pm

سلام دوست عزيز

تفاوت بين اين دو دستور اين است که دستور #define يک دستور پيش پردازنده ميباشد(دستورات پیش پردازنده دستوراتی هستند که قبل از کامپایل برنامه توسط عملیات پیش پردازنده ارزیابی می شوند و عموما جدولی شامل ستونهای شناسه و مقدار را تشکیل می دهند .)معني ديگر تفاوت ثوابتي كه در ابتدا با define ‌مشخص ميشوند با const ‌انستكه : وقتي شما نام مقدار ثابتي را كه در برنامه مشخص كرده ايد به كار ميبريد دقيقا مانند اين است كه ان مقدار ثابت را دوباره نوشته ايد و حافظه اي براي تعريف متغير مانند const را اشغال نميكنيد .
زندگي اب روان است, روان ميگذرد...............

New Member
پست: 7
تاریخ عضویت: پنج شنبه 14 آذر 1387, 5:46 pm

پست توسط yrpetroodi » شنبه 30 آذر 1387, 12:27 pm

سلام...
دوست عزیز samaneh87
از جواب خوبی که به سوالم دادید متشکرم...
لطفا آیا میتوانید در مورد دستور پیش پردازنده #ifndefine یا #ifdefine و #if برایم توضیح دهید....

New Member
نمایه کاربر
پست: 12
تاریخ عضویت: چهار شنبه 16 مرداد 1387, 8:39 pm

پست توسط samaneh87 » شنبه 30 آذر 1387, 8:29 pm

سلام دوست عزيز
من پيشنهاد ميکنم اگه ميخواين زبان سي ++ رو خوب ياد بگيرين ابتدا کتاب (چگونه با سي ++برنامه بنويسيم نوشته ي :هاروي ام.ديتل و پل جي.ديتل ترجمه شده ي مهندس حسين ابراهيم زاده قلزم) رو مطالعه کنيد فکر ميکنم تمامه سوالاتتون به راحتي پاسخ داده بشه . :razz:
من چند ساله دیگه با سی ++ کار نمیکنم ولی مطمئن هستم اگر این کتاب و تهیه کنید حتما مشکلتون رفع خواهد شد و تا جایی که یادم باشه و بتونم بنده هم کمکتون میکنم .
زندگي اب روان است, روان ميگذرد...............

New Member
پست: 7
تاریخ عضویت: پنج شنبه 14 آذر 1387, 5:46 pm

پست توسط yrpetroodi » یک شنبه 1 دی 1387, 12:23 pm

سلام دوست عزیز
از توجه و پاسختان به این سوال متشکرم...
من کتاب دیتل را تقریبا کامل خواندم ولی پاسخ مبسوطی به این سوالات پیدا نکردهام ولیکن دوباره آن را مرور خواهم کرد و از راهنماییتان متشکرم....
و اما اگر ممکن است راهنمایی دیگر...
غرض این نیست که روی C++ به صورت حرفه ایی متمرکز شوم . میخواهم برنامه نویسی را با C# یا PHP ادامه دهم ...
لطفا آیا میتوانید در این انتخاب(C# یا PHP) کمکم کنید..
این موضوع را از لحاظ تجاری( درخواست بازار کار) و گستره توانایی های هر یک از این دو(C# , PHP) در انجام کار بیان کنید...

New Member
نمایه کاربر
پست: 12
تاریخ عضویت: چهار شنبه 16 مرداد 1387, 8:39 pm

پست توسط samaneh87 » یک شنبه 1 دی 1387, 6:14 pm

سلام دوست عزيز
اتفاقا من خودمم يه مدت دنباله يه زبان برنامه نويسي خوب بودم که بازار کاري خوبي هم داشته باشه و اکثرا اساتيد و دوستاني که مشغول به کار در اين حيطه بودند زبان برنامه نويسي c# رو معرفي کردند و من خودمم بعد از اتمام امتحاناي پايان ترم قصد دارم برم دنباله زبانه c#. :razz:
زندگي اب روان است, روان ميگذرد...............

Administrator
Administrator
نمایه کاربر
پست: 15674
تاریخ عضویت: جمعه 7 بهمن 1384, 7:51 pm
سپاس‌های ارسالی: 70844 بار
سپاس‌های دریافتی: 31298 بار
تماس:

پست توسط Mahdi1944 » یک شنبه 1 دی 1387, 6:20 pm

yrpetroodi,
البته توجه داشته باشيد CSharp و PHP در يک کلاس نيستند و PHP برنامه نويسي تحت وب هست در حال که Csharp برنامه نويسي تجاري هست (هر چند در دات نت ميتوان به راحتي کدها رو تبديل کرد مثلا به asp.net)
اگر هدف شما برنامه نويسي تجاري هست، CSharp بهترين انتخاب هست، و PHP هم مناسب براي طراحي سايت و امثال اون، البته محيط توسعه‌ي قابل قبولي براي PHP وجود نداره و برنامه نويسي با اين زبان به مراتب مشکل‌تر از ديگر زبانها ميباشد
زندگي صحنه يکتاي هنرمندي ماست هرکسي نغمه خود خواند و از صحنه رود
صحنه پيوسته به جاست خرم آن نغمه که مردم بسپارند به ياد


[لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید] | [لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید] | مجله الکترونيکي سنترال کلابز

[لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید] | [لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید] | [لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید]

لطفا سوالات فني را فقط در خود انجمن مطرح بفرماييد، به اين سوالات در PM پاسخ داده نخواهد شد

Colonel I
Colonel I
پست: 643
تاریخ عضویت: سه شنبه 19 تیر 1386, 1:08 pm
سپاس‌های ارسالی: 300 بار
سپاس‌های دریافتی: 1161 بار

پست توسط Frogfoot » دو شنبه 2 دی 1387, 3:25 am

لطفا آیا میتوانید در مورد دستور پیش پردازنده #ifndefine یا #ifdefine و #if برایم توضیح دهید....

اینها دستوراتی برای کامپایل شرطی هستند. به عنوان مثال، شما کدهایی را برای اشکال یابی به سورس خودتان اضافه می کنید، که مقادیر یکسری متغیر را مرتبا بر روی صفحه نمایش می دهند، تا شما بتوانید با توجه به مقادیر این متغیرها، اشکال برنامه خودتان را پیدا کنید. خب، این کد بدرد نسخه نهایی برنامه نمیخوره، چون فقط برای اشکال یابی توسط برنامه نویس نوشته شده. در همچین حالتی، میشه یک پیش پردازنده، مثلا DEBUG تعریف کرد، و هر جا کدهای مربوط به اشکال یابی وجود داشت، آنها را در بلوک #ifdef قرار داد. در این صورت، هر زمان که بخوایم برنامه را اشکال یابی کنیم، پیش پردازنده DEBUG را تعریف می کنیم، و در نتیجه تمامی کدهایی که با استفاده از #ifdef مشروط به تعریف DEBUG بودند، اجرا می شوند. هر وقت هم که این پیش پردازنده را حذف کنیم، و برنامه را کامپایل کنیم، آن بخش هایی که برای پیش پردازنده DEBUG تعریف شده اند، کامپایل نمی شوند.
مثال:

کد: انتخاب همه

#define DEBUG
...

#ifdef DEBUG
  // write your debug code here
#endif
...

#ifndef DEBUG
  //write codes that should be compiled only when debuging is disabled
#endif

Colonel I
Colonel I
پست: 643
تاریخ عضویت: سه شنبه 19 تیر 1386, 1:08 pm
سپاس‌های ارسالی: 300 بار
سپاس‌های دریافتی: 1161 بار

پست توسط Frogfoot » دو شنبه 2 دی 1387, 3:44 am

PHP یک زبان اسکریپت نویسی تحت وب هست. #C یک زبان چند منظوره مبتنی بر دات نت هست. بر روی سکوی دات نت می تونید Windows Application یا Web Application تولید کنید.
ASP.Net یک تکنولوژی ساخت Web Application مبتنی بر دات نت هست. با توجه به اینکه در دات نت زبان برنامه نویسی اهمیت چندانی نداره، می تونید به وسیله آن با هر زبانی که مبتنی بر دات نت باشد، برنامه نویسی کنید، به همین دلیل، می توانید با #C برنامه های ASP.Net بنویسید.
PHP به اضافه کتابخانه های آزادی که برایش وجود دارند، و وب سرور Apache، به عنوان رقیبی برای ASP.net به اضافه هر زبان دات نتی، به اضافه وب سرور IIS مایکروسافت محسوب می شود.

اکثرا اساتيد و دوستاني که مشغول به کار در اين حيطه بودند زبان برنامه نويسي c# رو معرفي کردند و من خودمم بعد از اتمام امتحاناي پايان ترم قصد دارم برم دنباله زبانه c#

توصیه می کنم بجای اینکه دغدغه انتخاب زبان برنامه نویسی را داشته باشید، روی مفاهیم کلیدی تر، مثل OOP، طراحی بانک اطلاعاتی، الگوریتم ها، و در کنار آنها، چگونگی عملکرد پلت فرمی مثل دات نت، سرمایه گزاری کنید. بعدش برید دنبال Syntax یک زبان خاص. برنامه نویسی که تمام دستورات و متدها و کلاس های #C را بلد باشه، ولی ندونه فرضا CLR دات نت با کدش چه رفتاری را میکنه، یا چطور باید بانک اطلاعاتی اش را طراحی کنه، یا چطور باید طرحی شی گرا داشته باشه، بدرد هیچ کار مفیدی جز انجام تمارین دانشگاهی نمیخوره! این مفاهیم پایه تقریبا در همه زبان ها ثابت هستند، ولی Syntax یک زبان با زبان دیگه ممکن هست از زمین تا آسمون فرق کنه.

در ضمن، این نکته را هم بگم که در ایران چون اکثر پروژه های نرم افزار برای سازمان ها و شرکت ها نوشته میشند، زبانی مثل #C خیلی توی بورس هست، و گرنه بخش اعظمی از نرم افزارهایی که شما در طول روز از آنها استفاده می کنید (مثل فایرفاکس، Internet Explorer, ویندوز, لینوکس, Microsoft Office, Photoshop، و...) همچنان با C\C++ توسعه داده میشند، و هنوز این زبان ها در خارج از ایران بازار بسیار خوبی دارند. البته در ایران هم اگر یک برنامه نویس حرفه ایی ++C باشید، امکان استخدامتان زیاد هست، چون در این زمنیه متخصصان چندانی در کشور وجود نداره، و حجم زیادی از کدهای منتشر شده در اینترنت و مکان های مختلف، همچنان با این زبان ها نوشته شدند، پس نیاز به متخصصان آنها احساس میشه. معمولا این شرکت ها شرکت های فنی و تخصصی هستند، ولی برای تقریبا در همه شرکت های نرم افزاری ایران جایی پیدا میشه، از طرفی برنامه نویسان مدعی بلد بودن #C هم محدوده وسیعی را شامل میشند: از برنامه نویسی که هیچی سرش نمیشه، و فقط کار کردن با موس و نوشتن چند خط کد به کمک Intelisense ویژوال استودیو را بلد هست، تا برنامه نویسی که کاملا روی طراحی نرم افزارهای Enterprise تسلط داره.

ارسال پست

بازگشت به “C Base Programming”