سلام.
عبارت void(تهی) در واقع این رو به برنامه می گه که تابع چیزی رو برنمی گردونه مثال حتما دیدید ک یک سری توابع اگر کارشان را درست انجام دادن مقدارtrue واگرنه false رو برمی گردونه اما تابعی که از نوع void تعریف بشه هیچ چیزی رو برنمی گردونه دقیقا مثال clrscr خروجی نداره
از اوجایی که برنامه ی اصلی در سی به عنوان یک تابع تعریف می شه پس بید دارای مقدار باشه پس عبارت void می گه که تابع نازی نیست چیزی رو برگردونه!!
پس فرقی بین (void main(void و( )void main نیست
اما ( ) int main چون باید خروجی int داشته باشه عبارت return 0 رو در آخر برنامه قرار می دیم که یه سیستم بفهمونم که برنامه تموم شده(این سبک در سی++ اضافه شده نه سی)
اما حالا چه را اگر return 0 رو نزاریم مشکلی پیش نمیاد چون شما داخل تابع اصلی ارگومانی رو تعریف نکردین و کامپایلر اونو از نوع void در نظر می گیره پس با اتمام خط آخر برنامه رو تموم می کنه!!
عبارت return 0 در سی++ مهمه و شما حتما باید وقتی که از کامپایلر سی++ استفاده می کنید از ( ) int main و return 0 استفاده کنید
شاید در آخر هم سوالی پیش بیاد که چرا الان مشکلی با کامپایلر ندارین ؟ که در پاسخ اید بگم که شما از کمپالر c/c++ استفاده می کنید که در آن واحد با فراخوانی فایل های سرآمد صحیح می تونید از هر دوتش استفده کنید!!
شما یکسری از استاندارد های ++C , C رو تحریف کردید!!
طبق آخرین و حتی استاندارد های قبل از آخرین گفته شده که تابع main باید مقداری از نوع int برگرداند. یعنی به یکی از شکل های زیر تعریف شود:
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
این قالب (تابع) بعد ها در استاندارد ++C شامل دو پارامتر اضافی هم شد که بصورت زیر درومد:
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
حتی پاراماتر سومی هم که تحت پلتفرم هست هم به این قالب(تابع) اضافه شد.
و اما مقدار برگشتی که این تابع باید برگرداند طبق استاندارد C دو مقدار زیر برای برگشت تعریف شده است:
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
و طبق استاندارد ++C میتواند هر مقداری باشد ولی مقدار 0 به عنوان قرار دادی به منظور عدم خطا در برنامه و اجرای صحیح در نظر گرفته شده و هر مقدار غیر صفر به منظور خطا در اجرا تلقی میشود.
و در ضمن سرفایل :
جزو سرفایل های استاندارد این زبان محصوب نمیشه و استفاده از اون در کدهاتون زیاد درست نیست.