Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Δεν ειναι έγκυρο να δηλώσουμε και να δώσουμε τιμή σε μια external? γιατι ο μεταγλωτιστης μου πετάει ο ένας error σε αυτο και άλλος warning?

 
extern int v = 0; ισοδυναμε με int v  = 0;

???

 

μπορει να δώσει κάποιος ένα παράδειγμα τι εννοει οταν λέει :

 

This rule prevents multiple extern declarations from initializing a variable in different ways. ???

 

ο rule ειναι ουσιαστικα αυτο που έδωσα πριν. Οτι εδω μπορουμε να έχουμε και δήλωση και ορισμό μαζί.

Δημοσ.

Αφου ειναι extern. Πως στο καλο θα το κανεις init σε δυο σημεια;;;

 

Αυτο εδώ κτυπάει :

 
#include<stdio.h>
extern int v  = 0;
 
int main(void)
{
 
 
 
    return 0;
}
 
|warning: 'v' initialized and declared 'extern'|
||=== Build finished: 0 errors, 1 warnings ===|
 
btw έχω 1 warning και κανένα error sorry εκανα λάθος στην αρχή.
Δημοσ.

τι ειναι τουτο;

http://ideone.com/zVdk7q

 

Ωραια ειναι μια δηλωση που πληροφορει τον μεταγλωτιστη οτι θα υπάρξει κάπου αλλού μια μεταβλητή αυτου του τύπου που θα ορισθεί. Δεν ειναι ο ορισμος της δηλαδη αυτος αλλα υπάρχει μια εξαίρεση στην οποια μπορει να ειναι και δήλωση και ορισμός στην περιπτωση που έδειξα. Ετσι δεν ειναι? 

Δημοσ.

Γενικώς δεν έχει νόημα να αρχικοποιείς μια extern μεταβλητή. Και λογικά να το πάρεις, η αρχικοποίηση είναι άμεσα συνυφασμένη με τον ορισμό μιας μεταβλητής. Η εντολή extern λέει ακριβώς το αντίθετο στον compiler, ότι δηλαδή η συγκεκριμένη μεταβλητή ΔΕΝ έχει οριστεί στο παρόν scope (αλλά σε κάποιο άλλο).

  • Like 1

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...