עבור לתוכן
View in the app

A better way to browse. Learn more.

HWzone

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

תנאי if ב- ansi C

Featured Replies

פורסם

שאלה כביכול מתחילנית, אבל האמת אף פעם לא נגעתי בעניין... יצא לי להיתקל בכמה תוכניות עם הביטוי נניח:


if (a)
{

.
.
.
}

הכוונה שזה שקול ל-


if(a!=0)
{

.
.
.
}

??

רק רציתי לוודא....

תודה !

פורסם

אני לא יודע באיזו שפות אז בקיצור זה אומר ש:

1. a שווה לtrue [כאשר הוא מסוג bool]

2. [וזה כבר תלוי בשפה] שa הוא בעל ערך שאינו 0, null, או '' (סטרינג ריק)

פורסם
  • מחבר

ANSI C...

שכחתי לציין בכותרת... ;D

פורסם

ב-C זה אכן שקול.

אגב, בתקן הישן של C בכלל אין כזה דבר bool - כל בוליאן הוא למעשה int, ובקומפיילרים ישנים בכלל לא היה קיים הטיפוס הזה (בשביל להחזיר true/false היית מחזיר 1/0). כשאתה עושה if על מספר כלשהו, אז הקוד יתבצע אם ורק אם המספר שונה מ-0 (כשזה מתורגם לבוליאנים, אז זה בדיוק אומר שהקוד יתבצע רק אם ערך הביטוי הוא true).

הפעולה =! היא פעולה שהתוצאה שלה היא מספר - אם שני האופרנדים שווים היא מחזירה 0, אחרת היא מחזירה מספר שאינו 0 (בד"כ 1, אבל לא בהכרח).

פורסם
  • מחבר

ב-C זה אכן שקול.

אהה סבבה...

לגבי bool: זה קיים רק ב-C++ כי ב-C לא קיים param. type כזה...

אפשר כמובן להגדיר כ-enum איזה homemade bool אבל אין משהו פורמלי בשפה למיטב ידעתי לפחות...

הפעולה =! היא פעולה שהתוצאה שלה היא מספר - אם שני האופרנדים שווים היא מחזירה 0, אחרת היא מחזירה מספר שאינו 0 (בד"כ 1, אבל לא בהכרח).

לא כ"כ הבנתי... מה הכוונה מחזירה ערך ? הכוונה החזרת ערך לקומפיילר לצורך קביעה איך הוא ימשיך בתנאי שב-source code?

פורסם

לגבי bool: זה קיים רק ב-C++ כי ב-C לא קיים param. type כזה...

אפשר כמובן להגדיר כ-enum איזה homemade bool אבל אין משהו פורמלי בשפה למיטב ידעתי לפחות...

שוב, תלוי לפי איזה תקן. ב-C90 (שהוא התקן הנפוץ שמלמדים) אין טיפוס bool, אבל רוב הקומפיילרים עדיין תומכים בו (זה פשוט typedef ל-int). בתקן C99 היותר חדש יש גם טיפוס בוליאני.

לא כ"כ הבנתי... מה הכוונה מחזירה ערך ? הכוונה החזרת ערך לקומפיילר לצורך קביעה איך הוא ימשיך בתנאי שב-source code?

הכוונה ב"מחזירה" היא שזהו ערך הביטוי. לומר ש-"+" מחזירה את הסכום של שני מספרים אומר שערך הביטוי a+b הוא הסכום של שני המספרים. אז לומר ש-"=!" מחזירה משהו, זה כמו לומר שערך הביטוי a!=b הוא אותו משהו.

פורסם
  • מחבר

עכשיו עשית לי סדר בראש אחי :xyxthumbs:

תודה וסחטיין על ההסבר ;):D

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.