שיחה:שפת C/משתנים

מתוך ויקיספר, אוסף הספרים והמדריכים החופשי
קפיצה לניווט קפיצה לחיפוש

טווח משתנים ומשתנים סטטיים[עריכה]

לדעתי יש טעות בערך. עד כמה שאני יודע, בתקן של שפת C לא נקבע מהו טווח הערכים שאמורים המשתנים להכיל. גם בפועל, הערך שגוי - int בימינו (כלומר, ברוב המימושים שנמצא) הוא בטווח הערכים ממינוס 2,147,483,648 ועד 2,147,483,647. רק זה חסר לנו, שאנשים שמתחילים ללמוד C יקבלו מההתחלה את התפיסה השגויה לפיה הם יודעים לבטח כמה מקום תופס int - זה מזמין באגים ובעיות פורטביליות מכאן ועד להודעה חדשה. גדי אלכסנדרוביץ' 20:43, 7 מאי 2005 (UTC)

ומה עם משתנים סטטיים?--מקפץ גבעות 20:59, 27 מרס 2006 (UTC)

הוספתי. גדי אלכסנדרוביץ' 07:56, 28 מרס 2006 (UTC)

שאלה לגבי סטטיים[עריכה]

כשמצהירים עליהם לא צריך לשים int או char אחרי ה-static ? אם לא חשוב לציין את זה בערך. חורחה

צריך, פאשלה מביכה שלי. גדי אלכסנדרוביץ' 10:15, 28 מרס 2006 (UTC)

אולי כדאי לציין שבתכנות נהוג לא להשתמש במשתנים גלובליים?--מקפץ גבעות 13:15, 28 מרס 2006 (UTC)

בערך כרגע קיימת כבר השורה "בתכנות נכון בדרך כלל מומלץ להמנע ככל האפשר משימוש במשתנים גלובליים, ותחתם להשתמש בהעברת פרמטרים בין פונקציות". אולי כדאי גם להוסיף הערה ששימוש במשתנים סטטיים גם הוא בעייתי מאוד ברוב המקרים. גדי אלכסנדרוביץ' 13:52, 28 מרס 2006 (UTC)

משתנים גלובליים[עריכה]

האם אלו הם המשתנים שמוגדרים ב- ()void main ?

לא קראתי את הערך, אך אלה משתנים המוגדרים מחוץ לכל פונקציה, כולל int main. (ודרך אגב, זה צריך להיות int main ולא void main.) ‏– rotemlissשיחה 14:36, 30 אפריל 2006 (IDT)
אפשר גם void main. רק במקום return 0; (או לחילופין return 1; למצבי שגיאה) לכתוב return; או לא לכתוב בכלל.--80.178.128.177 13:47, 13 באוגוסט 2006 (IDT)
התקן אומר שלא. מותר לך כמובן להתעלם ממנו, בדיוק באותו אופן שמותר לך לנסוע באדום. אולי זה יפעל, ואולי משאית תמחץ אותך. :) ‏conio.h‏ • ‏שיחה‏ 14:27, 13 באוגוסט 2006 (IDT)

שימוש במושגים שמופיעים בהמשך או בכלל לא[עריכה]

  1. משתנים לוקליים הוסברו כאן על ידי פונקציות - נושא שטרם הוזכר. החלפתי זאת לבלוקים.
  2. משתנים סטטיים שייכים בעיקר לפונקציות (לשם העברתי אותם), או למודולים (פרק שייצרתי). בכל מקרה, בשלב הזה של הנושאים שכוסו, אין לדעתי סיכוי להסביר באמת מהם משתנים סטטיים.

Thedsadude 23:33, 22 בנובמבר 2007 (IST)

בלבול בין טיפוסים למשתנים[עריכה]

אני מסדר מחדש את הדף כדי להבדיל בין משתנים לטיפוסים.Thedsadude 13:09, 4 בדצמבר 2007 (IST)

הצורך בהצהרה על משתנים בתחילת בלוק[עריכה]

טוב, זה כבר לא נכון (שונה בC99). להלן דוגמה חוקית לחלוטין:

int d = 3;

d = 15;
d = 16;

float f = 8.3; /* Absolutely no problem, except on old compilers. */

נראה לי שאשנה זאת, ואוסיף את ההערה הקבועה שהוספתי במקומות האחרים המשתמשים בתקן C99. Thedsadude 23:54, 22 בדצמבר 2007 (IST)

הסבה[עריכה]

תודה על התוספת. הסבה היא פעולה על טיפוסים, לאו דווקא על משתנים. אפשר להתווכח אם השימוש העיקרי בהסבה הוא בפונקציות, אבל בכל אופן הייתי נמנע מזה מפני שעדיין לא הגענו לפונקציות. הייתי ממליץ להעביר את זה מחוץ לפעולות עם משתנים, להרחיב, ולהוסיף תבנית שקול לדלג. (אישית אין לי זמן לספר הזה עכשיו). ביי. Thedsadude 20:45, 2 במרץ 2008 (IST)

תודה על ההערה אעשה כך (למען האמת לא היה בדעתי להשאיר זאת כך, אלא שאנוס הייתי לעזוב המחשב מיד, וכך השארתי זאת במצב כזה). אליהו52ק 09:13, 4 במרץ 2008 (IST)
זה בסדר מישהוא אחר כבר הרחיב. אליהו52ק 11:55, 4 במרץ 2008 (IST)