שיחה:שפת 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)
- אפשר גם void main. רק במקום return 0; (או לחילופין return 1; למצבי שגיאה) לכתוב return; או לא לכתוב בכלל.--80.178.128.177 13:47, 13 באוגוסט 2006 (IDT)
שימוש במושגים שמופיעים בהמשך או בכלל לא
עריכה- משתנים לוקליים הוסברו כאן על ידי פונקציות - נושא שטרם הוזכר. החלפתי זאת לבלוקים.
- משתנים סטטיים שייכים בעיקר לפונקציות (לשם העברתי אותם), או למודולים (פרק שייצרתי). בכל מקרה, בשלב הזה של הנושאים שכוסו, אין לדעתי סיכוי להסביר באמת מהם משתנים סטטיים.
בלבול בין טיפוסים למשתנים
עריכהאני מסדר מחדש את הדף כדי להבדיל בין משתנים לטיפוסים.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)