۱- در مورد متغیرهای داخلی تابع main
مثل بقیهی متغیرها عمل میکنه و تفاوتی نداره. در مورد تعریف خود تابع main
امضای این تابع تنها به چند شکل استاندارد میتونه موجود باشه و نمیشه هر آرگومانی رو بهش داد.
۲- در این مورد مثل همهی توابع دیگه عمل میکنه.
۳- روش پیادهسازی توابع در زبان ماشین یکی هست. البته جزئیاتش به کامپایلر بستگی داره. فرق تابع main
با بقیه این هست که کامپایلر برای تولید کد اجرایی اولین جایی که شروع میکنه ابتدای تابع main
هست و ممکنه به صورت یک تابع در زبان ماشین پیاده نشه بلکه شروع این تابع شروع بلاک کد در فایل اجرایی باشه بدون این که تابعی تعریف شده باشه.
(در صورتی که بررسی کنین کامپایل کردن کدها برای داس، همین کار و میکنه و محتویات داخل main
مستقیماً داخل بلاک کد فایل اجرایی قرار میگیره. در صورتی که در فایل اجرایی exe
تولید شده برای سیستم عامل ویندوز، این طور نیست و تابع main
ای که شما مینویسین به صورت یک تابع جداگانه کامپایل میشه و در ابتدای برنامه اشارهگر اجرای دستور به اون تابع ارسال میشه.
۴- بستگی به قسمت ۳ داره که در صورتی که به صورت تابع پیاده نشه، فراخوانی معنایی نداره یا حداکثر فراخوانی به معنی تغییر مکان مورد اشارهی اشارهگر اجرایی به ابتدای بلاک کد هست. در صورتی که به صورت یه تابع پیاده شده باشه میشه در مورد فراخوانی هم حرف زد
(به طور کلی فراخوانی در زبان ماشین چیزی شبیه به تغییر آدرس اشارهگر اجرایی ماشین هست. با یه سری کارهای اولیه مثل مقداردهی اولیه متغیرها و ذخیرهی مکان فعلی اشارهگر روی پشته و ...
هیچ پژوهش انسانی نمیتواند ادعای علمی بودن داشته باشد، مگر اینکه از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)