دوستان به متن زیر توجه کنید :
" اگر تابع هیچ مقداری را به برنامه فراخوان باز نگرداند و فاقد آرگومان باشد ، نوع آن به صورت void تعریف می شود "
تعاریف بالا تابع و خصوصا مقدار void را تعریف کرده است .
خب حالا به دو مثال زیر توجه کنید :
1 :
printf (“Programming is fun.\n”);
2 :
printf(“Programming is fun.\n”);
مثال 1 :
در این برنامه بعد تعریف تابع اصلی برنامه در داخل پرانتز واژه void استفاده شده و کار اصلی برنامه هم چاپ یک رشته است ! حالا سوالی که اینجا برای من پیش آمده است این است که چرا در داخل پرانتز واژه void به کار رفته است و چرا این برنامه از این واژه استفاده کرده .
مثال 2 :
و اما در این مثال باز هم برنامه از واژه void استفاده کرده ، هم در قسمت نوع تابع و هم در قسمت آرگومان تابع! و کار اصلی این برنامه هم چاپ یک رشته است که این وظیفه را به تابع واگذار کرده است . و تابع هم بعد پردازش دستورات ، رشته را به برنامه ی اصلی تحویل می دهد تا برنامه اصلی آن مقدار را چاپ کند !!!
حال سوال اصلی
طبق تعریف بالا تابعی که در مثال 2 استفاده شده است عملا نباید مقداری را به برنامه فراخوان تحویل دهد .
اما بعد از پردازش دستورات ، رشته مورد نظر را به برنامه فراخوان تحویل می دهد و برنامه اصلی هم رشته را چاپ می کند ، با توجه به این تعاریف آیا اصل مقدار void زیر سوال نمی رود ؟
یا اینکه بنده من درست متوجه نشده ام ... ؟!
خواهشمند است حقر را راهنمایی بفرمایید .