تفاوت کلیدی بین اعلان و تعریف در C این است که اعلان در C به کامپایلر در مورد نام تابع، نوع بازگشت و پارامترها می گوید در حالی که تعریف در C شامل اجرای واقعی تابع است. یعنی اعلان اطلاعاتی را در مورد تابع به کامپایلر ارائه می دهد در حالی که تعریف شامل عبارات واقعی تابع برای انجام یک کار خاص است.
C یک زبان برنامه نویسی با هدف کلی و ساختار یافته است. از ساختارهای کنترلی مانند if/else، تکرارهایی مانند حلقه برای، حلقه while و توابع استفاده می کند. تابع مجموعه ای از دستورات است که به انجام یک کار معین بارها و بارها کمک می کند.علاوه بر این، فراخوانی توابع از تابع اصلی امکان پذیر است. پس از اجرای آخرین دستور تابع، کنترل به تابع اصلی باز می گردد. این مقاله به بیان و تعریف توابع در C و مقایسه تفاوت بین آنها می پردازد. تعریف تابع مشخص می کند که تابع چه کاری انجام می دهد، و اعلان مشخص می کند که چه چیزی به تابع می رود. این یک نمونه اولیه است.
اعلان در C چیست؟
Declaration اطلاعاتی در مورد عملکرد به کامپایلر ارائه می دهد. نحو اعلان به شرح زیر است.
return_ type function_name (لیست پارامتر)؛
تابعی را فرض کنید که مجموع دو عدد صحیح را محاسبه می کند. بیانیه به شرح زیر است.
int sum (int num1, int num2);
نام تابع sum است و پارامترها دو عدد صحیح هستند که num1 و num2 هستند. این تابع یک عدد صحیح برمی گرداند. عبارت کامل با نقطه ویرگول به پایان می رسد.
نیازی به درج نام پارامترها در اعلان نیست. بنابراین می توان فقط نوع داده را به صورت زیر ذکر کرد. زیر یک اعلامیه معتبر است.
int sum (int, int);
تعریف در C چیست؟
تعریف حاوی عبارات واقعی تابع برای انجام یک کار خاص است. نحو به شرح زیر است.
return_type function_name (فهرست پارامترها){
// عبارات تابع
}
نام تابع به شناسایی تابع کمک می کند. هنگام فراخوانی یک تابع، مقادیر به آن تابع منتقل می شود. این مقادیر در پارامترها کپی می شوند. لیست پارامترها می تواند شامل یک پارامتر یا تعدادی پارامتر باشد. و این پارامترها یک نوع داده و یک نام دارند. علاوه بر این، توابعی بدون هیچ پارامتری نیز وجود دارد.
عبارات تابع در داخل پرانتزهای فر قرار دارند. بدن عملکرد است.پس از اجرای تابع، مقداری را برمی گرداند. نوع بازگشت به مقدار بازگشتی بستگی دارد. اگر تابع یک عدد صحیح برمی گرداند، نوع بازگشتی آن int است. اگر تابع یک double برمی گرداند، آنگاه نوع بازگشتی double و غیره است.
به کد زیر با اعلان و تعریف یک تابع مراجعه کنید.
شکل 01: برنامه برای محاسبه مجموع دو عدد
طبق برنامه بالا، خط 3 اعلامیه را نمایش می دهد. نام تابع، پارامترها و غیره را به کامپایلر میگوید. در تابع اصلی، دو مقدار از صفحه کلید گرفته میشود و در متغیر «a» و «b» ذخیره میشوند. در خط 12 این مقادیر به تابعی به نام sum ارسال می شود. این "a" و "b" آرگومان هستند.
در خط 16، تابع sum اجرا می شود.مقدار a را در num1 و مقدار b را در num2 کپی می کند. این تابع جمع و آن مقدار را به متغیر 'ans' (خط 12) برمی گرداند. در نهایت، پاسخ بر روی صفحه نمایش چاپ می شود. به طور خلاصه، خط 3 اعلان را نشان می دهد در حالی که خط 16 تا 18 تعریف را نشان می دهد.
تفاوت بین Declaration و Definition در C چیست؟
Declaration یک نمونه اولیه است که نام تابع و امضای نوع مانند انواع داده ها، انواع برگشتی و پارامترها را مشخص می کند اما بدنه تابع را حذف می کند. تعریف نام تابع و امضاهای نوع مانند انواع داده ها، انواع برگشتی و پارامترها را مشخص می کند و بدنه تابع را نیز شامل می شود. Declaration به کامپایلر در مورد نام تابع و نحوه فراخوانی آن می گوید. از سوی دیگر، تعریف شامل اجرای واقعی تابع است. وظیفه تابع را شرح می دهد.
خلاصه - اعلامیه در مقابل تعریف در C
تفاوت بین اعلان و تعریف در C این است که اعلان در C به کامپایلر در مورد نام تابع، نوع بازگشتی و پارامترها می گوید در حالی که تعریف در C شامل اجرای واقعی تابع است.