Go Back   Το UNIX και Linux Forums > Top Forums > Προγραμματισμός
.
Google Site



Προγραμματισμός Post ερωτήσεις σχετικά με την C, C + +, Java, SQL, και άλλες γλώσσες προγραμματισμού εδώ.

Closed Thread
English Japanese Spanish French German Portuguese Italian Powered by Powered by Google
 
Εργαλεία Θέματος Αναζήτηση αυτό το νήμα Βαθμολογήστε Νήμα Display Modes
  #1 (Permalink)  
Old 02-13-2007
Εγγεγραμμένος χρήστης
 

Εγγραφή: Ιούλιος 2006
Θέσεις: 31
Byte Επένδυση

Γεια σου,

Μπορεί κάποιος να εξηγήσει τι είναι byte padding?

Για π.χ.:
struct EMP (
char s?
int β?
char s1?
int b1?
καιρό b3?
char s3?
)

Ποιο θα είναι το μέγεθος αυτής της δομής;

Ευχαριστώ
Sponsored Links
  #2 (Permalink)  
Old 02-13-2007
tayyabq8's Avatar
Ex-Moderator
 

Εγγραφή: Νοέμβριος 2004
Περιοχή: Μπαχρέιν
Μηνύματα: 587
Έλεγχος για την sizeof φορέα, όπως:
Κωδικός:
#include <stdio.h>

typedef struct{
char s;
int b;
char s1;
int b1;
long b3;
char s3;
}emp;

void main() {
emp tst1;
printf ("Size: %d\n", sizeof(tst1));
}

Προϊόν σε μηχανή μου:
Κωδικός:
Size: 24

  #3 (Permalink)  
Old 02-13-2007
...@...
 

Εγγραφή: Φεβρουάριος 2004
Τοποθεσία: NM
Δημοσιεύσεις: 6164
Padding η υλοποίηση εξαρτάται. Βασικά αυτό σημαίνει ότι τα αντικείμενα μέσα στο struct έχουν την έναρξή τους διευθύνσεις μετακόμισε (παραγεμισμένο με bytes) τόσο από την έναρξη κάθε αντικείμενο μπορεί να έχει πρόσβαση από το υλικό αποτελεσματικά.

Κακή ευθυγράμμιση των αντικειμένων μπορεί να οδηγήσει σε SIGBUS χωματερή πυρήνα, ή πολύ αργή πρόσβαση στο αντικείμενο. Ορισμένοι μεταγλωττιστές έχουν pragma να απενεργοποιήσετε ή να τροποποιήσουν padding. Άλλοι παρέχει προειδοποιήσεις για παραγέμισμα.
  #4 (Permalink)  
Old 02-19-2007
Εγγεγραμμένος χρήστης
 

Εγγραφή: Φεβρουάριος 2007
Θέσεις: 3
για GCC προσπαθούν να καθορίσουν τη δομή σας όπως αυτό:

struct gtpp_hdr6 (
unsigned char σημαία? / / 1 byte
unsigned char message_type? / / 1 byte
unsigned μικρού μήκους? / / 2 bytes
unsigned σύντομη ακολουθία? / / 2 bytes
) __attribute__ ((__packed__))?

και ελέγξτε και πάλι.
Αυτό το χαρακτηριστικό compiler δείχνει ότι η δομή αυτή χρησιμοποιείται για πακέτα δεδομένων και compiler δεν θα κάνει padding
  #5 (Permalink)  
Old 02-20-2007
Εγγεγραμμένος χρήστης
 

Εγγραφή: Φεβρουάριος 2007
Θέσεις: 1
Arrow Θέματα Padding.

Πράγματι χαμηλό επίπεδο το θέμα του. Επένδυση αποθηκεύει όλα τα δεδομένα στοιχείο ξεκίνησε από ακόμη και τις διευθύνσεις. Σε αυτό το char μηχανισμός λαμβάνει επίσης 2 bytes (ένα Byte αποθηκεύονται σε τρέχουσες ακόμη και τη διεύθυνση, το επόμενο στοιχείο μπορεί να αποθηκεύσει δεδομένα στον επόμενο, ακόμη και τη διεύθυνση, το α / μ παράξενο διεύθυνση είναι σπατάλη). Αλλά βελτιώνει την ανάγνωση των δεδομένων αποτελεσματικότητας.
  #6 (Permalink)  
Old 02-21-2007
Εγγεγραμμένος χρήστης
 

Εγγραφή: Φεβρουάριος 2007
Τοποθεσία: Ισραήλ
Θέσεις: 24
Ένα πρόγραμμα που δείχνει θέματα παραγέμισμα και τα αντισταθμιστικά οφέλη

Γεια σου,
Όταν εργάζονται σε πολλές client / server καταστάσεις ότι τα δεδομένα που διαβιβάζονται είναι περάσει σε δομών δεδομένων. Είναι σημαντικό να γνωρίζουμε τις ρυθμίσεις παραγέμισμα μεταξύ δύο αρχιτέκτονες, τόσο εδώ είναι ένα πρόγραμμα παράδειγμα που δείχνει πώς μπορείτε να δείτε τα αντισταθμιστικά οφέλη.
# περιλαμβάνουν <stdio.h>
int main (κενή)
(
struct (
char ένα?
int i?
double d?
) St?

printf ( "st μέγεθος:% d \ noffset a:% d \ noffset i:% d \ noffset d:% d \ n",
sizeof (st),
((char *) (& st.a)) - ((char *) & st),
((char *) (& st.i)) - ((char *) & st),
((char *) (& st.d)) - ((char *) & st))?

)
  #7 (Permalink)  
Old 02-22-2007
Hitori's Avatar
Hitori Hitori is offline Forum Advisor  
Εγγεγραμμένος χρήστης
 

Εγγραφή: Ιούνιος 2006
Μηνύματα: 360
C compilers σε διαφορετικά συστήματα απλώστε δομές με διαφορετικό τρόπο.
Σε ορισμένες περιπτώσεις, μπορεί ακόμη και να διάταξης διαφορές μεταξύ των διαφόρων
Γ μεταγλωττιστές για το ίδιο σύστημα. Μεταφραστές προσθέσετε κενά μεταξύ των τομέων,
και αυτά τα κενά έχουν διαφορετικά μεγέθη και είναι σε διαφορετικές τοποθεσίες.
Μπορείτε να κανονικά υποθέσουμε ότι δεν υπάρχουν κενά μεταξύ των τομέων του τύπου char
ή σειρά char. Ωστόσο, δεν μπορείτε να κάνετε οποιαδήποτε παραδοχές σχετικά με
κενά μεταξύ των τομέων κάποιο ευρύτερο τύπο. Μπορείτε, επίσης, δεν μπορεί να κάνει
παραδοχές σχετικά με τη διάταξη των τύπων bitfield.

(Από autobook 1,5)
Sponsored Links
Closed Thread

Σελιδοδείκτες

Εργαλεία Θέματος Αναζήτηση αυτό το νήμα
Αναζήτηση αυτό το νήμα:

Advanced Search
Display Modes Βαθμολογήστε αυτό το νήμα
Βαθμολογήστε αυτό το νήμα:

Απόσπαση Κανονισμού
Εσύ δεν μπορεί να υστέρων νέα νήματα
Εσύ δεν μπορεί να μετά απαντήσεις
Εσύ δεν μπορεί να μετά συνημμένα
Εσύ δεν μπορεί να επεξεργαστείτε τις θέσεις

BB κωδικός είναι Σε λειτουργία
Smilies είναι Σε λειτουργία
[IMG] κωδικός Σε λειτουργία
Κώδικα HTML είναι Εκτός χρήσης
Trackbacks είναι Σε λειτουργία
Pingbacks είναι Σε λειτουργία
Refbacks είναι Εκτός χρήσης


Περισσότερα UNIX και Linux Forum Θέματα που μπορεί να σας Χρήσιμη
Νήμα Thread Starter Φόρουμ Απαντήσεις Τελευταίο μήνυμα
Επένδυση με μηδενικά. sbasetty Ο προγραμματισμός και η Shell Scripting 10 05-18-2009 08:09 μμ
Επένδυση στο Unix rudoraj Ο προγραμματισμός και η Shell Scripting 3 02-21-2008 12:06 AM
AWK padding και αξίες kshelluser UNIX για Ανδρείκελα Ερωτήσεις & Απαντήσεις 3 11-29-2006 05:14 μμ
Επένδυση vijaygopalsk UNIX για Ανδρείκελα Ερωτήσεις & Απαντήσεις 2 06-27-2003 11:51 AM
Επένδυση θέματα informshilpa UNIX για Advanced & Expert Χρήστες 2 03-01-2002 01:51 μμ



Όλες οι ώρες είναι GMT -4. Η ώρα τώρα είναι 11:37 μμ.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Γλώσσα Μεταφράσεις Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Η UNIX και Linux Φόρουμ Content Copyright © 1993-2010. Όλα τα δικαιώματα Reserved.Ad διαχείριση από RedTyger

Περιεχόμενο σχετικό με τις διευθύνσεις URL vBSEO 3.2.0