Μπορούμε να χρησιμοποιήσουμε στατικό και πτητικό μαζί στο C;
Μπορούμε να χρησιμοποιήσουμε στατικό και πτητικό μαζί στο C;

Βίντεο: Μπορούμε να χρησιμοποιήσουμε στατικό και πτητικό μαζί στο C;

Βίντεο: Μπορούμε να χρησιμοποιήσουμε στατικό και πτητικό μαζί στο C;
Βίντεο: Luis Elizondo: Whistleblowers, UAPs, Time Travel [PART 3!] 2024, Νοέμβριος
Anonim

Στατικός Οι μεταβλητές διατηρούν την αξία τους μεταξύ των κλήσεων συναρτήσεων. Πτητικός μεταβλητές (που δεν είναι το αντίθετο από στατικός ) είναι μεταχειρισμένος όταν μια μεταβλητή είναι μεταχειρισμένος τόσο εντός μιας ρουτίνας ISR (διακοπή υπηρεσίας) όσο και εκτός αυτής. Πτητικός λέει στον μεταγλωττιστή να φορτώνει πάντα το διαθέσιμο από τη μνήμη RAM αντί να το αποθηκεύει προσωρινά σε ένα CPUregister.

Ομοίως μπορεί να ρωτήσει κανείς, μπορούμε να χρησιμοποιήσουμε στατικό και πτητικό μαζί;

Ακόμα κι αν εσείς πρόσβαση α στατικός τιμή μέσω πολλαπλών νημάτων, κάθε νήμα μπορώ έχει το τοπικό του cacheedcopy! Για να αποφευχθεί αυτό μπορείς να δηλώσετε τη μεταβλητή ως στατικό πτητικό και αυτό θα αναγκάστε το νήμα να σκιστεί κάθε φορά που η καθολική τιμή. Ωστόσο, πτητικός δεν υποκαθιστά τον σωστό συγχρονισμό!

Ομοίως, γιατί χρησιμοποιούμε πτητικό στο C; Το C είναι πτητικό λέξη-κλειδί είναι ένας προσδιορισμός που εφαρμόζεται σε μια μεταβλητή όταν δηλώνεται. Λέει στον μεταγλωττιστή ότι η τιμή της μεταβλητής μπορεί να αλλάξει ανά πάσα στιγμή--χωρίς να γίνει καμία ενέργεια από τον κώδικα που βρίσκει ο μεταγλωττιστής κοντά. Οι συνέπειες αυτού είναι αρκετά σοβαρές.

Λαμβάνοντας υπόψη αυτό, τι σημαίνει στατικό πτητικό στο C;

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

Μπορούμε να χρησιμοποιήσουμε const με πτητικό στο C;

Ναί. Μια μεταβλητή μπορώ να δηλωθούν και τα δύο πτητικός και συνεχής σε ντο . Κωνστ ο τροποποιητής δεν επιτρέπει την αλλαγή της τιμής της μεταβλητής από το εσωτερικό πρόγραμμα. Αλλά, δεν σημαίνει ότι η αξία του συνθ η μεταβλητή δεν πρέπει να αλλάξει από εξωτερικό κωδικό.

Συνιστάται: