*unsigned char

justme5

New member
*unsigned char

שלום, שאלה טפשית: איזה שימוש עושים ב *unsigned char שלא יכול להיעשות ע"י *char?
 

justme5

New member
אני סתום

האם יש הבדל מבחינת הקומפיילר/מע' ההפעלה/תמונת הזיכרון אם אני משתמש ב *unsigned char או *char כדי להצביע על מערך של תווים? שאלה שניה: אם אני משתמש ב *unsigned char כדי להצביע על מערך של תווים, ורוצה להפעיל את strcpy על מנת להעתיק מחרוזת אחרת לתוך המערך הזה, עלי לעשות casting ל *char כדי שהקומפיילר לא יצעק. באילו מקרים, אם בכלל, casting כזה יהרוג לי את האפליקציה? התנצלות: אני איש java, ודי לא טריוייאלי לי כל הנושא של הצבעות. כל מה שאני לא מוצא בגוגל, אני מעלה לפה. בתקווה שלא תהיה הצפה...
 

vinney

Active member
בשום מקרה

מקסימום שזה יכול לעשות זה שגיאות בחישובים אם אתה מסתמך על הערך המספרי של התוים. הרי char זה מספר שלם, כמו int רק עם טווח וגודל קטנים יותר. אפשר לעשות עליהם פעולות חשבוניות, ופה בא לידי ביטוי הunsigned או signed.
 

kt jauc

New member
באופן כללי, strcpy לא מתאים כאן

מערך של בתים הוא לא בדיוק מערך של תווים מבחינה תפישתית (זה כן בדיוק אותו דבר מבחינה אמיתית). הדוגמא הכי טובה, שעליה מסתמכות כל פונקציות הSTR למיניהן, היא שמערך תווים מסתיים בבית שערכו 0 - גם אם הוא גדול יותר, הפונקציות לא "רואות" את הזנב שלו. בד"כ הדבר לא מתאים למטרות שבשבילן משתמשים בunsigned char.
 
למעלה