[Powered by Google Translate] כריס גרבר: פונקציה הוא סדרה של שלבים שונים תכנית גדולה יותר, אשר בדרך כלל מיועדת להיקרא מספר רבים של פעמים וממקומות רבים אחרים ב את התכנית. בעת יצירת פונקצית C, אחת הדרישות הוא תציין סוג ערך החזרה. המקרה הפשוט ביותר הוא מצב שבו קורא קוד אינו עוסק בתוצאה של הפונקציה. זה יכול להיות מקרה כאשר אנו מדפיסים נתונים התצוגה של המשתמש, כמו עם printf. במקרה זה, אנחנו יכולים להצהיר ערך החזרה להיות מסוג החלל. שימוש בחלל פשוט אומר למהדר שלא ערך יוחזר. בואו לראות איך זה נראה. בואו נגיד שיש לנו פונקציה שנקראת שsay_hello לוקח טיעון אחד. אנחנו נעביר את זה שמו של אדם והוא יציג את ברכה על המסך. שם יהיה מסוג char *. ואנו לציין כי כטיעון. היישום שלי לא צריך לדעת מה היה מודפס או אם הוא הודפס. אז ערך ההחזרה יהיה מסוג החלל. פונקציה זו יכולה להדפיס למסך בעזרת פקודה כמו printf ("שלום,% s \ n ", שם);. הברכה יוצגה ושליטה תועבר בחזרה לקוד שקורא. דבר אחד שיש לציין הוא שכאשר סוג הערך המוחזר הוא ריק, אתה לא צריך לכלול החזר הצהרה בפונקציה. אם תבחר לכלול אחד, אינו כולל את ערך החזרה כטיעון. במקרים מסוימים, זה הגיוני לחזור ערך מפונקציה. בואו נגיד שזה שאנחנו כותבים פונקציה שנקראת add_floats. אנחנו נעביר את זה בשתי טענות, שני המצופים, שם הראשון ושני. ואת זה יגיד לנו מה הסכום של המצופים האלה הוא. אנחנו יודעים שאם נוסיף שני צפנו יחד, התוצאה יהיה מצוף. בהתחשב בכך, אנו בוחרים סוג החזרה של מצוף. פונקציה זו תבצע חישוב זה ולחזור הערכים במשפט כמו תשואה 1 + 2;. כששליטה עוברת בחזרה לקוד שקורא, כתוצאה ערך זמין כעת לקוד זה. אנחנו יכולים לאחסן ערך זה כך: תוצאה לצוף = add_floats (3.14, 1.62 );. תוצאה במקרה הזה יהיה כעת מכיל את הערך 4.76. כתזכורת, ערכי נקודה צפו הם לא מדויקים. אז אם זה היה שיקול כספי, שמשתמש בדולר ו הסנאט, ייתכן שירצה לשקול סוג נתונים מדויק כגון int ולבצע את החישוב בפרוטות. מקרה נוסף שבו היינו רוצה להחזיר ערך מ פונקציה היא כאשר אנו רוצים לדעת אם פונקציה הייתה מוצלח. אם זה לא היה מצליח, ייתכן שגם אתם רוצים לדעת איזה סוג של תרעו שגיאה. נניח שאנחנו מנסים לפתוח קובץ בדיסק לספור מספר התווים בו. אם הקובץ לא ניתן לפתוח, אנו רוצים להיות מסוגלים לעצור ו לספר את המשתמש על הבעיה. אנחנו נתקשר count_file_chars הפונקציה שלנו וזה יהיה לקחת את טיעון אחד. נחלקנו לכם בשמו של הקובץ באמצעות * שם קובץ char. פונקציה זו עשויה להיראות משהו כמו זה. בדוגמה זו, הייתי מצפה שחזרו לספירה להיות 0 או יותר. זה מותיר לנו את המספרים השלמים השליליים להשתמש כערכי זקיף. ערך זקיף הוא פשוט ערך מיוחד שאינו נתונים לגיטימיים אבל אין העברת מידע. כאן, אם אני חוזר ל-1 קוד שקורא, אני למעשה שולח את ההודעה שירעו שגיאה בזמן מנסה לגשת לקובץ. אז אני יכול לבדוק שערך ההחזרה כדי לקבוע אם קריאה לפונקציה הייתה מוצלחת. אם המספר היה 0 או יותר, הייתי יודע מספר התווים בקובץ. אם, לעומת זאת, היה פחות מהמספר 0, שיכולתי פשוט להדפיס שבעיה התרחשה. אחד תחלופה להביא בחשבון כי על ידי הזמנה כל ערכים שליליים כערכי זקיף, בהנחה שזה הוא שלם 32-bit, יש לי משם נלקח למעשה סביב 2000000000 ערכים לחזור אפשריים. סוגי ערך החזרה הן האחד המרכיבים החשובים ביותר של קריאות לפונקציות. אני מקווה שסקירה קצרה זו סייעה לך לחשוב על שלושה סוגים עיקריים: חלל, ערכי תוצאה, וערכי זקיף, וכאשר כל אחד מהשלושה יכול להיות מתאים בקוד שלך. תודה שצפה.