ערכתי לאחרונה בתאריך 18.12.06 בשעה 22:17 בברכה, Limp Bizkit
נעבור אחד אחד.typedef :
בנוסף לטיפוסים הקיימים בשפת c, קיימת גם אפשרות להגדיר טיפוסים חדשים ע"י typedef
לדוגמא :
typedef double doogma(4);
|
הגדרתי פה מערך חד מימדי מטיפוס double בעל 4 איברים
וכעת אני יכול להגדיר מערכים חדשים ע"י ציון doogma בלבד
doogma arr; arr(2) = 2.23232323;
|
בכוונה עשיתי עם סוגריים עגולות כי אי אפשר מרובעות
מקווה שהייתי ברור
במקרה שלך הגדרת טיפוס מחסנית חדש בעל השם stack_type (אני ידון על זה בהמשך)
אב טיפוס הפונקציה :
בקובץ ממשק בדרך כלל מגדירים אב טיפוס לפונקציות של התוכנית
האב טיפוס מציין למהדר איזה ערך הפונקציה מחזירה (האם int,double וכו', או שבכלל void שלא מחזיר שום ערך)
הוא גם מציין את שם הפונקציה, ובתוך הסוגריים הוא אומר למהדר איזה פרמטרים הפונקציה אמורה לקבל ואת מציין הטיפוס שלהם (אתה יכול לציין גם את שמות המשתנים אבל המהדר יכול להחליט להתעלם מהם. *לא לציין שמות משתנים באב טיפוס פוקנציה זו לא שגיאה*)
לצורך המחשה :
int sum(int,int); // function prototype
|
ציינו למהדר שקיימת פונקציה בשם sum שאמורה לקלוט שתי משתנים מסוג int
במקרה שלך :
void stack_push(stack_type *st, stack_info_type x);
|
ציינו למהדר שיש פונקציה בשם stack_push שאמורה לקבל מצביע מסוג stack_type (כמו שהסברתי מקודם)
ועל פי השורה הזו שהגדרת
typedef int stack_info_type ;
|
היא גם מקבלת משתנה מסוג שלם x
האבטיפוס הספציפי הזה שקול גם לזה :
void stack_push(stack_type*, stack_info_type);
|
למה כוכבית ? כי הפונקציה אמורה לקבל מצביע.
לשאלה הבאה, אני ממש לא יודע למה המחסנית הזו משמשת, אבל הכל תלוי בהקשר שמשתמשים בה!
אבל ממה שהבנתי ממך,
הtop משמש למספור האיברים במחסנית!
אם top יהיה 5, זאת אומרת שיש 5 איברים במחסנית
וכמו שאמרתי, לגבי המערך, אני ממש לא יודע למה הוא משמש, הכל תלוי בהקשר שמשתמשים בו בתוכנית
מקווה שהבנת אותי, בהצלחה בהמשך

Ask any racer, any real racer. It doesn't matter if you win by an inch or a mile; winning's
winning.