פורסם 2007 באוקטובר 2718 שנים מחבר int main(){ vec v={0}; int i; system ("cls"); for(i=0;i<9;++i) setCell(&v,i,5); for(i=0;i<9;++i) printf("%d ,",getCell(v,i)); getchar(); return 0;}#include "vec.h"int getCell(vec v, int index){ return(v.vector[index]);}int setCell(vec *v, int index, int num){ (*v).vector[index]=num; return(1);}struct vecc{ int vector[9];};typedef struct vecc vec;int getCell(vec v, int index);int setCell(vec *v, int index, int num);תראו הודיעו לי שאני יכול לעבוד עם TYPEDEF במקום הSTRUCT אם אני רוצה.יעני משהו כזהtypedef int vec[9];רק אני לא מסתדר עם זה בכל הקטע שם עוד TYPEDEF עבודה עם זה בפונקציות...זה עדיף לעשות הסבה?
פורסם 2007 באוקטובר 2818 שנים typedef זה פשוט לתת שם נרדף לטיפוס. ברגע שעשיתtypedef int vec[9];זה אומר שבכל מקום שבו אתה רוצה לרשוםint x[9]אתה יכול לרשום פשוטvec x;ואין בעיה להצהיר ככה על משתנה, או כפרמטר לפונקציה.כמובן שכמו כל משתנה, אתה יכול ליצור מצביע אליו וכו' (הטיפוס של המצביע יהיה *vec).
פורסם 2007 באוקטובר 2918 שנים מחבר מה רע פה?typedef mat queb[9];mat getMat(queb t, int deep);הרי שאני מחזיר את MAT זה כאילו אני רושם איזה INT** לא?
פורסם 2007 באוקטובר 2918 שנים מערך הוא לא lval ולכן אינך יכול להחזיר מערך.אתה יכול להחזיר מצביע(queb*).
פורסם 2007 באוקטובר 2918 שנים מחבר סבבה אני אשנה אבל יש לי שאלה, בהנחה שהייתי משתמש במערכים רגילים ולא TYPEDEF / STRUCT או לא משנה מהשני השורות האלה לא שקולותmat getMat(queb t, int deep);int** getMat(queb t, int deep);ולמשהו אחראני יכול לשלוח את MAT לפונקציה או שאני צריך גם לשלוח את הכתובת ולקבל מצביע..?
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.