Bit Field

Γεια σου,
echo47 έγραψε:struct packed_struct foo = (1, 0, 1, 0, 12, 500, 200)?

 
Συντακτικό λάθος;Ποια compiler χρησιμοποιείτε;Ίσως είναι πολύ παλιό ή σπασμένο.

Για να ελέγξετε, δοκιμάστε τη συλλογή αυτή:
Κωδικός:

struct packed_struct (

unsigned int f1: 1?

unsigned int f2: 1?

unsigned int f3: 1?

unsigned int F4: 1?

unsigned int Τύπος: 4?

unsigned int funny_int: 9?

unsigned int normal_int: 8?

)?

struct packed_struct foo = (1, 0, 1, 0, 12, 500, 200)?int main (void)

(

return 0?

)
 
Hi echo47,

Συγγνώμη, είχα χάσει ένα ερωτηματικό στο τέλος της δομής.Γι comeout η συντακτικό λάθος κοντά »struct».Τώρα μπορούν να εργάζονται ήδη πρόστιμο.

Ευχαριστούμε ..

 
Γεια σου,

Μπορεί κανείς να εξηγήσετε τον κώδικα για μένα;
Κωδικός:

Κωδικός struct αξίας (

unsigned MOD1: 1?

unsigned mod2: 2?

unsigned mod3: 3?

unsigned MOD4: 4?

)?

struct bitfield_array αξία [] = (1, 2, 4, 8)?
 
bitfield_array είναι μια σειρά δομών "αξία".
Όταν δηλώνετε με [] άδειο μέγεθος τότε μπορείτε να πείτε compiler αποθεματικό μόνο ένα μέλος του εν λόγω πίνακα κάτι σαν [1] te όταν θα αναφοράς ότι πρέπει να θέσει ευρετήριο [0].
Αυτή η σειρά θα μπορούσε αργότερα να αλλάξει το μέγεθός τους, χρησιμοποιώντας δυναμική κατανομή μνήμης.
Σε αυτή τη συγκεκριμένη περίπτωση bitfield_array [0] θα έχουν αξία σε δυαδικό κώδικα όπως 1101001000 ...(Ή εξαρτώνται από endianess του επεξεργαστή - 1000100101 ...)

ως παράδειγμα, εάν αλλάξουμε δήλωση του bitfield ...ως μια σειρά με μέγεθος 2 τότε θα πρέπει να θέσει προετοιμαστεί για δύο, καθώς αλλιώς compiler σας δώσει προειδοποίηση (δεν είναι λάθος) ότι κάτι λείπει.
struct bitfield_array αξία [2] = ((1, 2, 4, 8), (0, 1, 2, 3))?
Τελευταία επεξεργασία από dsp4us στις 16 Αυγούστου 2007 4:12? Επεξεργάσθηκε 1 φορά συνολικά

 
Γεια σου,

Κωδικός:

struct (unsigned char Επιλέξτε?) κωδικό NUM [] = ((1), (2), (4), (8))?

Value = NUM [2]. Επιλέξτε? / / Αξία = 4
 
Ερώτηση δεν είναι σαφής: Τι εννοείς "εφαρμόζουν αυτόν τον κωδικό στο ...; Αυτός ο κωδικός δηλώνει array (NUM) των δομών (κωδικός) που συμβαίνει να είναι μόνο unsigned char μέγεθος (Επιλογή). Επειδή υπάρχει αρχικοποίησης κατά την δήλωση array NUM έχει μέγεθος 4 δομών (ισοδυναμεί με 4 unsigned chars). μέλος Πρώτα array NUM [1]. Επιλέξτε wil έχουν 1 δεύτερο NUM [2]. Επιλέξτε θα έχουν 2 και ούτω καθεξής.

 
Γεια σου,

Σας ευχαριστώ και πάλι.Καταλαβαίνω τι προσπαθείτε να εξηγήσετε.

Ο κωδικός δήλωσε ποικιλία δομών.Το μέγεθος του πίνακα είναι 4.Αυτό το 4 αξίες declarated ως unsigned char τύπο και να αποθηκεύουν στον κωδικό.Αυτό το 4 τιμές είναι σταθερή μεταβλητή.

Κωδικός:

struct (unsigned char Επιλέξτε?) κωδικό NUM [] = ((1), (2), (4), (8))?

Value = NUM [2]. Επιλέξτε? / / Value = 4
 
Η απάντηση είναι πράγματι στην ερώτησή σας από τις 14 Αυγούστου 2007 23:57 και η απάντησή μου στο ότι θα είναι κάπως έτσι:

struct αξία
(
unsigned NUM0: 1?
unsigned num1: 2?
unsigned num2: 3?
unsigned NUM3: 4?
)?

struct ar αξία = (1, 2, 4, 8)

αλλά δεν θα μπορούσατε να αποκτήσετε πρόσβαση σε αυτά ως NUM [0] κ.λπ.
έχετε να αναφοράς κάθε μέλος, όπως είναι (δεν indexing) ar.NUM0, ar.NUM1 .....

 
Hi dsp4us,

Ευχαριστώ ya.Αυτό i λίγες ημέρες να προσπαθήσει να βρει την απάντηση και να κάνουν κάποια αναζήτηση στο Google.Δεν έχω ιδέα.Πραγματικά θέλω να ζητήσω από το πρότυπο αριθμό που μπορεί να το κάνει σε μορφή BifField.
1η num = 1
2ο num = 2
3ος num = 4
4ft num 8 =
Nevermind αλλά διότι είναι αδύνατον να το κάνουμε αυτό.

Άλλη ερώτηση, ας πούμε, αν έχω 3 μεταβλητή που είναι σε μορφή BitField.
Κωδικός:

struct αξίας (

unsigned MOD1: 1?

unsigned mod2: 2?

unsigned mod3: 3?

)?

struct bitfield_array τιμή [1] = ((1, 2, 4))?
 

Welcome to EDABoard.com

Sponsor

Back
Top