ΚΕΦΑΛΑΙΟ 3 - ΜΕΤΑΒΛΗΤΕΣ & ΣΤΑΘΕΡΕΣ

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

Re: ΚΕΦΑΛΑΙΟ 3 - ΜΕΤΑΒΛΗΤΕΣ & ΣΤΑΘΕΡΕΣ

Δημοσίευσηαπό poscore » 29 Ιουν 2012, 11:35

Το const σε μια συνάρτηση θεωρείται global? όχι έτσι? :/
Άβαταρ μέλους
poscore
punkTUX
punkTUX
 
Δημοσιεύσεις: 153
Εγγραφή: 28 Απρ 2012, 17:21
Εκτύπωση

Re: ΚΕΦΑΛΑΙΟ 3 - ΜΕΤΑΒΛΗΤΕΣ & ΣΤΑΘΕΡΕΣ

Δημοσίευσηαπό migf1 » 29 Ιουν 2012, 12:16

poscore έγραψε:Το const σε μια συνάρτηση θεωρείται global? όχι έτσι? :/

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

Re: ΚΕΦΑΛΑΙΟ 3 - ΜΕΤΑΒΛΗΤΕΣ & ΣΤΑΘΕΡΕΣ

Δημοσίευσηαπό g1wrg0s » 29 Ιουν 2012, 14:24

Σαν global ,διοτι μονο η συναρτηση που τη δηλωσε μπορει να τη χρησιμοποιει στις κλησεις της και οχι οποιαδηποτε αλλη (αν μιλαμε για συναρτηση).
Spoiler: show
1 Γνώσεις Linux: Πρώτα βήματα ┃ Προγραμματισμού: Πρώτα βήματα ┃ Αγγλικών: Πρώτα βήματα
2 Ubuntu 12.10 quantal 3.10.20-031020-generic 32bit (el_GR.UTF-8, Unity ubuntu), Windows 8
3 Intel Core i5-3230M CPU @ 2.60GHz ‖ RAM 7923 MiB ‖ Acer VA50_HC_CR - Acer Aspire V3-571G
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915} ⋮ nVidia Device [10de:0fe1] {}
5 eth0: Broadcom NetLink BCM57785 Gigabit Ethernet PCIe [14e4:16b5] (rev 10) ⋮ wlan0: Atheros Inc. AR9462 Wireless Network Adapter [168c:0034] (rev 01)
g1wrg0s
punkTUX
punkTUX
 
Δημοσιεύσεις: 196
Εγγραφή: 26 Μάιος 2012, 10:29
Εκτύπωση

Re: ΚΕΦΑΛΑΙΟ 3 - ΜΕΤΑΒΛΗΤΕΣ & ΣΤΑΘΕΡΕΣ

Δημοσίευσηαπό poscore » 29 Ιουν 2012, 17:40

Σαν global ,διοτι μονο η συναρτηση που τη δηλωσε μπορει να τη χρησιμοποιει στις κλησεις της και οχι οποιαδηποτε αλλη (αν μιλαμε για συναρτηση).


Σαν LOCAL θέλεις να πεις...μάλλον :/ Με μπέρδεψες λιγουλάκι.
Άβαταρ μέλους
poscore
punkTUX
punkTUX
 
Δημοσιεύσεις: 153
Εγγραφή: 28 Απρ 2012, 17:21
Εκτύπωση

Re: ΚΕΦΑΛΑΙΟ 3 - ΜΕΤΑΒΛΗΤΕΣ & ΣΤΑΘΕΡΕΣ

Δημοσίευσηαπό g1wrg0s » 29 Ιουν 2012, 17:56

Δεν ειχα σκοπο.
Αυτο που θελω να πω ειναι οτι αν σε μια συναρτηση βαλεις static int x; τοτε αυτη δεν θα χανετε μεταξυ επαναλαμβανομενων κλησεων της συναρτησης αυτης , αλλα θα κρατα την τιμη της.
ΑΥΤΗ τη μεταβλητη x θα μπορει να τη χρησιμοποιει μονο η συναρτηση που τη δηλωσε και καμια αλλη.

π.χ

Κώδικας: Επιλογή όλων
#include<stdio.h>
void f1()
{
  static int x=2;
  x++;
  printf(" %c ",x);
}
void f2()
{
  static int x=66;
  x++;
  printf(" %c ",x);
}

main()
{
  f1();
  f1();
  printf("\n");
  f2();
  f2();
  printf("\n");
}
Spoiler: show
1 Γνώσεις Linux: Πρώτα βήματα ┃ Προγραμματισμού: Πρώτα βήματα ┃ Αγγλικών: Πρώτα βήματα
2 Ubuntu 12.10 quantal 3.10.20-031020-generic 32bit (el_GR.UTF-8, Unity ubuntu), Windows 8
3 Intel Core i5-3230M CPU @ 2.60GHz ‖ RAM 7923 MiB ‖ Acer VA50_HC_CR - Acer Aspire V3-571G
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915} ⋮ nVidia Device [10de:0fe1] {}
5 eth0: Broadcom NetLink BCM57785 Gigabit Ethernet PCIe [14e4:16b5] (rev 10) ⋮ wlan0: Atheros Inc. AR9462 Wireless Network Adapter [168c:0034] (rev 01)
g1wrg0s
punkTUX
punkTUX
 
Δημοσιεύσεις: 196
Εγγραφή: 26 Μάιος 2012, 10:29
Εκτύπωση

Re: ΚΕΦΑΛΑΙΟ 3 - ΜΕΤΑΒΛΗΤΕΣ & ΣΤΑΘΕΡΕΣ

Δημοσίευσηαπό poscore » 30 Ιουν 2012, 11:24

Τώρα κατάλαβα το Σαν :P Οκ, σε ευχαριστώ για την ενημέρωση :)
Άβαταρ μέλους
poscore
punkTUX
punkTUX
 
Δημοσιεύσεις: 153
Εγγραφή: 28 Απρ 2012, 17:21
Εκτύπωση

Προηγούμενη

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