Παραδείγματα & Ασκήσεις στην C

...ασύγχρονα μαθήματα γλώσσας C

Re: Παραδείγματα & Ασκήσεις στην C

Δημοσίευσηαπό migf1 » 13 Ιούλ 2011, 21:48

Ε κάνε συγκεκριμένη ερώτηση ντε :lol:

Ποια μέρη του δεν καταλαβαίνεις;
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Παραδείγματα & Ασκήσεις στην C

Δημοσίευσηαπό linuxs » 13 Ιούλ 2011, 22:03

:lol:
Κώδικας: Επιλογή όλων
printf("The size of \"struct test\" is: %d bytes\n", (char *)(p+1) - (char *)p );

Κάνεις casting σε char * αλλα η αφαίρεση βγάζει 1! :| Οπότε ένα byte χρησιμοποιούμε παντα? :lol: Βασικά, πως μπορούμε να μετρήσουμε το μέγεθος με αυτή την αφαίρεση?!!!
Αν το πρόβλημά μας επιλυθεί. Επιλέγουμε το θέμα που βοήθησε στην επίλυση και πατάμε το κουμπάκι Εικόνα.
Γνώσεις ⇛ Linux: Μέτριο┃Προγραμματισμός: C┃Αγγλικά: Καλά
Λειτουργικό ⇛ Linux Ubuntu 10.4 LTS
Προδιαγραφές ⇛ Intel Pentium @T4500 2.3GHz│ 512GB VRAM│ 500 HDD│ ATI RADEON HD545v 512 MB │ Screen: 15.6''
Άβαταρ μέλους
linuxs
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1060
Εγγραφή: 02 Ιούλ 2010, 13:19
Τοποθεσία: GR
IRC: linuxs
Εκτύπωση

Re: Παραδείγματα & Ασκήσεις στην C

Δημοσίευσηαπό migf1 » 13 Ιούλ 2011, 22:18

Η αφαίρεση βγάζει 1 αν ΔΕΝ κάνεις το cast! Με το cast βγάζει 108 (bytes) το οποίο μπορείς να διασταυρώσεις πως είναι σωστό, βάζοντας από κάτω άλλο ένα printf που θα χρησιμοποιεί τον τελεστή sizeof... printf("%d\n", sizeof(test) );

Η όλη ιστορία είναι να χρησιμοποιήσεις έναν δείκτη και με αριθμητική δεικτών να αφαιρέσεις την αρχική διεύθυνση του test από την τελική. Βάζεις λοιπόν το δείκτη στην αρχή του test, του προσθέτεις 1 για να βρεις το τέλος του test και υπολογίζεις τη διαφορά.

Επειδή όμως ο p είναι δηλωμένος τύπου struct test, η αφαίρεση σκέτη σου βγάζει 1, εννοώντας 1 struct test. Κάνουμε τον p cast σαν να ήταν δείκτης σε χαρακτήρες (αντί για δείκτης σε structs που είναι) για να μας επιστρέψει το αποτέλεσμα σε chars, που ισοδυναμούν με bytes (guaranteed από το στάνταρ της γλώσσας).
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Παραδείγματα & Ασκήσεις στην C

Δημοσίευσηαπό Star_Light » 13 Ιούλ 2011, 23:25

migf1 ευχαριστω για τις πηγες φαινονται βατες θα τις κοιταξω αυριο οπωςσδηποτε... Κατι τελευταιο...οταν λεμε API πχ η συναρτηση create_socket( .... )
για ενα socket (λεμε τωρα) ουσιαστικα ειναι το API ?
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Παραδείγματα & Ασκήσεις στην C

Δημοσίευσηαπό migf1 » 13 Ιούλ 2011, 23:43

Star_Light έγραψε:migf1 ευχαριστω για τις πηγες φαινονται βατες θα τις κοιταξω αυριο οπωςσδηποτε... Κατι τελευταιο...οταν λεμε API πχ η συναρτηση create_socket( .... )
για ενα socket (λεμε τωρα) ουσιαστικα ειναι το API ?

Απλοποιημένα, φαντάσου το API ως βιβλιοθήκη από συναρτήσεις. Π.χ. για να φτιάξεις στο πρόγραμμά σου γραφικό περιβάλλον στυλ Gnome θα πρέπει να μάθεις πως δουλεύουν και πως συνεργάζονται μεταξύ τους οι συναρτήσεις του GTK+ API και να τις χρησιμοποιήσεις στο πρόγραμμά σου.
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Παραδείγματα & Ασκήσεις στην C

Δημοσίευσηαπό Star_Light » 13 Ιούλ 2011, 23:49

migf1 έγραψε:
Star_Light έγραψε:migf1 ευχαριστω για τις πηγες φαινονται βατες θα τις κοιταξω αυριο οπωςσδηποτε... Κατι τελευταιο...οταν λεμε API πχ η συναρτηση create_socket( .... )
για ενα socket (λεμε τωρα) ουσιαστικα ειναι το API ?

Απλοποιημένα, φαντάσου το API ως βιβλιοθήκη από συναρτήσεις. Π.χ. για να φτιάξεις στο πρόγραμμά σου γραφικό περιβάλλον στυλ Gnome θα πρέπει να μάθεις πως δουλεύουν και πως συνεργάζονται μεταξύ τους οι συναρτήσεις του GTK+ API και να τις χρησιμοποιήσεις στο πρόγραμμά σου.


αχα δηλαδη δεν ειναι σκετες συναρτησεις μονο. Αλλη εννοια ειναι οι βιβλιοθηκες σκετο και αλλη οι βιβλιοθηκες απο συναρτησεις ????
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Παραδείγματα & Ασκήσεις στην C

Δημοσίευσηαπό migf1 » 14 Ιούλ 2011, 00:00

Όχι ρε συ, δεν είναι άλλη έννοια... η βιβλιοθήκη είναι συλλογή από συναρτήσεις (τύπους, δομές, κλπ).
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Παραδείγματα & Ασκήσεις στην C

Δημοσίευσηαπό Star_Light » 14 Ιούλ 2011, 00:34

migf1 έγραψε:Όχι ρε συ, δεν είναι άλλη έννοια... η βιβλιοθήκη είναι συλλογή από συναρτήσεις (τύπους, δομές, κλπ).


A ok. Καταλαβα. Βασικα παιζει να εννοουμε ακριβως το ιδιο απλα εγω δεν το εκφραζω σωστα και δεν σου δινω να καταλαβεις
τι ακριβως εννοω. ΕΥχαριστω. ;)
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Παραδείγματα & Ασκήσεις στην C

Δημοσίευσηαπό Star_Light » 14 Ιούλ 2011, 23:30

MIGF1 τα διαβασα τα λινκς που μου εδωσες για το memory layout αλλα εχω καποιες αποριουλες....

1. Καταρχην το static βοηθα μια συνάρτηση να μην διαγράφει την τοπικη της μεταβλητή όταν τερματίζει η κλήση της???? Οι καθολικες και οι static μεταβλητες ειναι το ιδιο????

2. Αυτα που δίνει ο χρηστης σε ενα προγραμμα σαν εισόδους και διαβάζονται μεσω της scanf ουσιαστικα αποθηκεύονται στο BSS SEGMENT???

3. Μεσα στο STACK υπαρχουν και οι δεικτες στοιβας που λεγαμε ε???

4. Η εξοδος της size program δεν καταλαβα ακριβως τι εδειχνε γιατι ειχε και καποια πεδια σε δεκαεξαδικο...

απαντησε μου σε οποιες μπορεις και εχεις χρονο !!! ευχαριστωωω φοβερες οι πηγες που μου εδωσες !!!!
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Παραδείγματα & Ασκήσεις στην C

Δημοσίευσηαπό migf1 » 15 Ιούλ 2011, 15:24

Μόλις πόσταρα ένα πολύ απλό τυχερό παιχνίδι (δικής μου έμπνευσης :lol:) στο Ανάπτυξη Λογισμικού. Αλγοριθμικά είναι τελείως "φλατ" οπότε ίσως βοηθήσει όσους κάνουν τα πρώτα τους βήματα στη γλώσσα.
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

ΠροηγούμενηΕπόμενο

  • ΣΧΕΤΙΚΑ ΘΕΜΑΤΑ
    ΑΠΑΝΤΗΣΕΙΣ
    ΠΡΟΒΟΛΕΣ
    ΣΥΓΓΡΑΦΕΑΣ

Επιστροφή στο Μαθήματα C

cron