Σελίδα 2 από 11 ΠρώτηΠρώτη 1 2 3 4 ... ΤελευταίαΤελευταία
Εμφάνιση αποτελεσμάτων : 11 έως 20 από 104

Θέμα: Μεταβλητές σε βιβλιοθήκη C

  1. #11
    Μέλος Το avatar του χρήστη picdev
    Όνομα
    akis
    Εγγραφή
    Jul 2007
    Περιοχή
    ____
    Μηνύματα
    7.375

    Προεπιλογή

    Ναι για με ειναι αλλα δεν παιζει κ τοσο ρολο

    Στάλθηκε από το GT-S6312 μου χρησιμοποιώντας Tapatalk 2

    0 Not allowed! Not allowed!

  2. #12
    Μέλος Το avatar του χρήστη SeAfasia
    Όνομα
    SV3IRG Dinos
    Εγγραφή
    Sep 2012
    Περιοχή
    Άργος.
    Μηνύματα
    3.363

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από picdev Εμφάνιση μηνυμάτων
    Ναι για με ειναι αλλα δεν παιζει κ τοσο ρολο

    Στάλθηκε από το GT-S6312 μου χρησιμοποιώντας Tapatalk 2
    oκ τότε,αν είναι για ενα κώδικα στη C που θα μεταγλωτιστει μεσω ενός προγράμματος σαν το dev c++ ή το codeblocks θα έχει διαφορά από ότι να γραφτεί για προγραμματισμο mcu..
    Αύριο θα σου πω διαφορές. ..

    0 Not allowed! Not allowed!

  3. #13
    Μέλος Το avatar του χρήστη klik
    Όνομα
    just a click away
    Εγγραφή
    Oct 2009
    Περιοχή
    Θεσσαλλλονίκη
    Μηνύματα
    2.561

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από picdev Εμφάνιση μηνυμάτων
    Αναφερομαι στα 2 διαφορετικα αρχεια .c και .h. πρεπει να οριστουν και στα 2 οσες πρεπει να φενονται στη μαιν?

    Στάλθηκε από το GT-S6312 μου χρησιμοποιώντας Tapatalk 2
    στο .c θα εχεις πχ int variableA;
    ενω στο .h external int variableA;
    Στο .c της βιβλιοθήκης θα κανεις include και το .h της βιβλιοθήκης. Μπορεις να κόβεις τα extern για το c της βιβλιοθηκης.

    Ολα τα αλλα global variables στο c που δεν θελεις να ειναι ορατα αλλου, μπορουν να ειναι static.

    0 Not allowed! Not allowed!

  4. #14
    Μέλος Το avatar του χρήστη picdev
    Όνομα
    akis
    Εγγραφή
    Jul 2007
    Περιοχή
    ____
    Μηνύματα
    7.375

    Προεπιλογή

    δηλαδή πρέπει να οριστούν και στο .h και στο .c, αν θέλω να φαίνονται στο main ? και μάλιστα να τα κάνω extern?
    μπορεί να υπάρχουν μεταβλητές μόνο στο .h και όχι στο .c? δηλαδή μπορεί να ειναι ανεξάρτητα ?
    γιατί εδώ πχ https://github.com/elechouse/nRF905/...hield/NRF905.h
    έχει κάνει κάποια define μονο στο .h , στο .c δεν υπάρχουν.
    Αν η μεταβλητή-συνάρτηση δεν είναι extern δεν φαίνεται ?

    και κάτι άλλο που δεν έχω καταλάβει είναι το παρακάτω, αυτό είνai struckt, και το ορίζει μονο στο .h

    typedef enum
    {
    US = 0, /** 908.42Mhz */
    EUROPE = 1, /** 868.42MHz */
    AFRICA = 2, /** 868.42MHz */
    CHINA = 3, /** 868.42MHz */
    HK = 4, /** 919.82MHz */
    JAPAN = 5, /** 853.42MHz */
    AUSTRALIA = 6, /** 921.42MHz */
    NEW_ZEALAND = 7, /** 921.42MHz */
    BRASIL = 8, /** 921.42MHz */
    Russia = 9, /** 896.00MHz */
    } nrf905_freq_type;

    0 Not allowed! Not allowed!
    Τελευταία επεξεργασία από το χρήστη picdev : 16-01-15 στις 00:53

  5. #15
    Μέλος Το avatar του χρήστη klik
    Όνομα
    just a click away
    Εγγραφή
    Oct 2009
    Περιοχή
    Θεσσαλλλονίκη
    Μηνύματα
    2.561

    Προεπιλογή

    Eίπαme ότι το .h θα το κανεις include και στη main και στο .c της βιβλιοθήκης. Μόνο μια φορά θα γράφεις τις μεταβλητές/τύπους κλπ.

    π.χ.
    Κώδικας:
    //@ lib1.h
    
    #ifndef _LIB1_H
    #define _LIB1_H           1
    
    #ifndef _EXTERN
    #define _EXTERN extern
    #endif
    
    enum fooe {
            fa,fb,fc,fd
    };
    
    typedef struct {
      int a;
      double b;
      unsigned int x:3;
    } data1;
    
    _EXTERN data1 xfoo;
    
    void xxx(void);
    
    #endif    //_LIB1_H
    Κώδικας:
    //@main.c
    #include "lib1.h"
    int main(){
       xfoo.b = 3.3;
    }
    Κώδικας:
    //@lib1.c
    #define _EXTERN
    #include "lib1.h"
    #undef _EXTERN
    #include <stdio.h>
    
    void xxx(void){
        xfoo.a = fa;
    }

    0 Not allowed! Not allowed!

  6. #16
    Μέλος Το avatar του χρήστη bchris
    Όνομα
    Χρηστος
    Εγγραφή
    Nov 2011
    Περιοχή
    Lugano
    Μηνύματα
    2.104

    Προεπιλογή

    Ειναι πολυ απλο.
    ας πουμε οτι φτιαχνεις μια library "prasina_aloga" με το "prasina_aloga.c" και το "prasina_aloga.h"
    Εννοειται οτι στο prasina_aloga.c θα εχεις include το prasina_aloga.h
    Επισης μιας και μιλαμε για library, δεν υπαρχει int main(). Αυτη θα βρισκεται στο .c του προγραμματος που θα χρησιμοποιιησει την library σου.

    Τωρα, οσες μεταβλητες βαλεις στο "prasina_aloga.h" θα φαινονται και στο "prasina_aloga.c" καθως επισης και οπου κανεις include το "prasina_aloga.h" συνηθως στο κεντρικο .c οποτε θα τις βλεπει και η εν λογω int main() που λεγαμε πιο πριν.
    Οσες μεταβλητες τις βαλεις στο "prasina_aloga.c" ομως, θα ειναι ορατες μονο εκει μεσα. Θα ειναι κατα καποιο τροπο για εσωτερικη καταναλωση απο την library.

    Αυτα...

    1 Not allowed! Not allowed!

  7. #17
    Μέλος Το avatar του χρήστη picdev
    Όνομα
    akis
    Εγγραφή
    Jul 2007
    Περιοχή
    ____
    Μηνύματα
    7.375

    Προεπιλογή

    στο .h πρέπει να γράψουμε και με extern τις συναρτήσεις του .c αρχείου.
    + να ορίσουμε μεταβλητές που θα έχουν πρόσβαση απο το main. Αλλά αυτές τις ορίζουμε μονο στο .h
    Αν ορίσουμε μεταβλητή στο .c της βιβλιοθήκης θα φαίνεται μόνο απο εκεί.
    καλά τα είπα?

    Κλικ καλά τα λές , αλλά ακόμα προσπαθώ να καταλάβω τη σύνταξη σου σε κάποια πράγματα

    0 Not allowed! Not allowed!

  8. #18
    Μέλος Το avatar του χρήστη picdev
    Όνομα
    akis
    Εγγραφή
    Jul 2007
    Περιοχή
    ____
    Μηνύματα
    7.375

    Προεπιλογή

    @#$ όσο διαβάζω παραδείγματα στο νετ για extern και τα συναφή τόσο μπερδεύομαι και 2 βιβλία που έχω δεν λένε τίποτα

    0 Not allowed! Not allowed!

  9. #19
    Μέλος Το avatar του χρήστη picdev
    Όνομα
    akis
    Εγγραφή
    Jul 2007
    Περιοχή
    ____
    Μηνύματα
    7.375

    Προεπιλογή

    Εδώ είδα ένα παράδειγμα , τη μεταβλητή τη δηλώνει σαν extern στο .h για να είναι ορατή και στο main., αλλά είναι δηλωμένη στο .c της βιβλιοθήκης.
    Απο την άλλη ποιος ο λόγος να δηλώσεις μεταβλητή στο .h και όχι στο αρχείο .c της βιβλιοθήκης ?


    http://computer.howstuffworks.com/c15.htm


    και κάτι τελευταίο αν κάνω κάτι define στο αρχείο της main
    θα μπορώ να το χρησιμοποιήσω στο .c της βιβλιοθήκης?
    κάποια pin θέλω να κάνω define

    0 Not allowed! Not allowed!
    Τελευταία επεξεργασία από το χρήστη picdev : 16-01-15 στις 14:13

  10. #20
    Μέλος Το avatar του χρήστη klik
    Όνομα
    just a click away
    Εγγραφή
    Oct 2009
    Περιοχή
    Θεσσαλλλονίκη
    Μηνύματα
    2.561

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από picdev Εμφάνιση μηνυμάτων
    κάτι τελευταίο αν κάνω κάτι define στο αρχείο της main
    θα μπορώ να το χρησιμοποιήσω στο .c της βιβλιοθήκης?
    κάποια pin θέλω να κάνω define
    οχι..........

    0 Not allowed! Not allowed!

Σελίδα 2 από 11 ΠρώτηΠρώτη 1 2 3 4 ... ΤελευταίαΤελευταία

Παρόμοια Θέματα

  1. Μεταβλητές σε C
    By ds electronics in forum Ερωτήσεις Αρχάριων
    Απαντήσεις: 34
    Τελευταίο Μήνυμα: 22-09-11, 02:51
  2. Μεταβλητός σταθεροποιητής τάσης
    By georgz in forum Εξαρτήματα & Datasheets
    Απαντήσεις: 2
    Τελευταίο Μήνυμα: 27-12-10, 19:34
  3. Float μεταβλητές σε GCC
    By Thansavv in forum Software Η/Υ
    Απαντήσεις: 8
    Τελευταίο Μήνυμα: 04-08-10, 09:42
  4. πυκνωτης 2x260 pf μεταβλητός
    By thanos_ in forum Εξαρτήματα & Datasheets
    Απαντήσεις: 2
    Τελευταίο Μήνυμα: 17-10-07, 22:53
  5. Πως αναγνωρίζεται ένας μεταβλητός?
    By Giannis511 in forum Εξαρτήματα & Datasheets
    Απαντήσεις: 2
    Τελευταίο Μήνυμα: 25-07-06, 11:17

Δικαιώματα - Επιλογές

  • Δημιουργία θεμάτων: Όχι
  • Υποβολή μηνυμάτων: Όχι
  • Σύναψη αρχείων: Όχι
  • Επεξεργασία μηνυμάτων: Όχι
  •  
  • BB code: σε λειτουργία
  • Smilies: σε λειτουργία
  • [IMG]: σε λειτουργία
  • [VIDEO] code is σε λειτουργία
  • HTML: εκτός λειτουργίας