שאלה בממשק עברי - Struct בשפת C
לא אעמיק ואכתוב את השאלה כולה אך אשאל את הנקודה הספציפית בה נתקעתי.
הוגדרו שני המבנים הבאים: #define N 8 typedef struct { int mar[N]; } byte_type; typedef struct { byte_type byte1; byte_type byte2; } word_type;
הוכנה הפונקצייה הבאה: word_type rotate_left_word(word_type word);
בתוך ה MAIN הוגדר: word_type x;
האם תתאפשר קריאה בצורה זו לפונקצייה?: x=rotate_left_word(x); האם גם BYTE1 וגם BYTE2 יעברו? אם כן, מסיבה לא ברורה אחרי שקראתי לפונקציה, חלק מהתאים השתנו. נניח שב x.byte1.mar היו הערכים 1 1 0 1 0 0 0 1 וב x.byte2.mar היו הערכים 0 1 1 0 1 1 0 0 לאחר ההעברה לפונקציה, פתאום הם משתנים ל: ב x.byte1.mar יהיו הערכים 1 0 1 0 0 0 0 1 וב x.byte2.mar יהיו הערכים 0 1 1 1 1 0 0 1 לפני ההעברה הדפסתי את המערך ומיד לאחר ההעברה ובתוך הפונקציה שוב הדפסתי וראיתי שהתוכן השתנה, שום פעולה נוספת ביניהם לא ארעה.
לא אעמיק ואכתוב את השאלה כולה אך אשאל את הנקודה הספציפית בה נתקעתי.