iem פורסם 2010 ביולי 25 Share פורסם 2010 ביולי 25 שאלה כביכול מתחילנית, אבל האמת אף פעם לא נגעתי בעניין... יצא לי להיתקל בכמה תוכניות עם הביטוי נניח:if (a){...}הכוונה שזה שקול ל-if(a!=0){...}??רק רציתי לוודא....תודה ! קישור לתוכן שתף באתרים אחרים More sharing options...
AgentZ פורסם 2010 ביולי 25 Share פורסם 2010 ביולי 25 אני לא יודע באיזו שפות אז בקיצור זה אומר ש:1. a שווה לtrue [כאשר הוא מסוג bool]2. [וזה כבר תלוי בשפה] שa הוא בעל ערך שאינו 0, null, או '' (סטרינג ריק) קישור לתוכן שתף באתרים אחרים More sharing options...
iem פורסם 2010 ביולי 25 מחבר Share פורסם 2010 ביולי 25 ANSI C...שכחתי לציין בכותרת... ;D קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2010 ביולי 25 Share פורסם 2010 ביולי 25 ב-C זה אכן שקול.אגב, בתקן הישן של C בכלל אין כזה דבר bool - כל בוליאן הוא למעשה int, ובקומפיילרים ישנים בכלל לא היה קיים הטיפוס הזה (בשביל להחזיר true/false היית מחזיר 1/0). כשאתה עושה if על מספר כלשהו, אז הקוד יתבצע אם ורק אם המספר שונה מ-0 (כשזה מתורגם לבוליאנים, אז זה בדיוק אומר שהקוד יתבצע רק אם ערך הביטוי הוא true).הפעולה =! היא פעולה שהתוצאה שלה היא מספר - אם שני האופרנדים שווים היא מחזירה 0, אחרת היא מחזירה מספר שאינו 0 (בד"כ 1, אבל לא בהכרח). קישור לתוכן שתף באתרים אחרים More sharing options...
iem פורסם 2010 ביולי 25 מחבר Share פורסם 2010 ביולי 25 ב-C זה אכן שקול.אהה סבבה...לגבי bool: זה קיים רק ב-C++ כי ב-C לא קיים param. type כזה...אפשר כמובן להגדיר כ-enum איזה homemade bool אבל אין משהו פורמלי בשפה למיטב ידעתי לפחות...הפעולה =! היא פעולה שהתוצאה שלה היא מספר - אם שני האופרנדים שווים היא מחזירה 0, אחרת היא מחזירה מספר שאינו 0 (בד"כ 1, אבל לא בהכרח).לא כ"כ הבנתי... מה הכוונה מחזירה ערך ? הכוונה החזרת ערך לקומפיילר לצורך קביעה איך הוא ימשיך בתנאי שב-source code? קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2010 ביולי 25 Share פורסם 2010 ביולי 25 לגבי bool: זה קיים רק ב-C++ כי ב-C לא קיים param. type כזה...אפשר כמובן להגדיר כ-enum איזה homemade bool אבל אין משהו פורמלי בשפה למיטב ידעתי לפחות...שוב, תלוי לפי איזה תקן. ב-C90 (שהוא התקן הנפוץ שמלמדים) אין טיפוס bool, אבל רוב הקומפיילרים עדיין תומכים בו (זה פשוט typedef ל-int). בתקן C99 היותר חדש יש גם טיפוס בוליאני.לא כ"כ הבנתי... מה הכוונה מחזירה ערך ? הכוונה החזרת ערך לקומפיילר לצורך קביעה איך הוא ימשיך בתנאי שב-source code?הכוונה ב"מחזירה" היא שזהו ערך הביטוי. לומר ש-"+" מחזירה את הסכום של שני מספרים אומר שערך הביטוי a+b הוא הסכום של שני המספרים. אז לומר ש-"=!" מחזירה משהו, זה כמו לומר שערך הביטוי a!=b הוא אותו משהו. קישור לתוכן שתף באתרים אחרים More sharing options...
iem פורסם 2010 ביולי 25 מחבר Share פורסם 2010 ביולי 25 עכשיו עשית לי סדר בראש אחי תודה וסחטיין על ההסבר קישור לתוכן שתף באתרים אחרים More sharing options...
Recommended Posts
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.