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

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

Δημοσ.

Γεια σας προσπαθώ να καταλάβω τι κάνει το keyword volatile στην c++ έφτιαξα ένα απλό πρόγραμμα για να δω πως λειτουργεί αλλά τίποτα:

 

Code:

#include <iostream>
int main(void)
{
  int j = 0;
  for (int i = 0 ; i < 100 ; ++i)
  {
    j += 1;
  }
  for (volatile int i = 0 ; i < 100 ; ++i) // Ποια η διαφορα volatile με int?
  {
    j += i;
  }
  std::cout << j; //5050
  return 0;
}

Μπορεί κάποιος να μου εξηγήσει?

Δημοσ.

Στην ουσία λες στον compiler να μην πειράξει για κανένα λόγο αυτές τις μεταβλητές. Συνήθως χρησιμοποιείται σε προγραμμάτα με παραλληλισμούς και με function handlers για μεταβλητές που παίζουν που φαίνονται εκ πρώτης ματιάς ότι δε χρησιμοποιούνται πουθενά, αλλά όντως έχουν λόγο που υπάρχουν. Ο compiler μπορεί να τις κάνει optimize out.

  • Like 1
Δημοσ.

Με λίγο search ακόμα βρήκα ότι χρησιμοποιείται και στο multithreading, ωραία μάθαμε και κάτι καινούργιο.

 

Ευχαριστώ παιδιά για τον χρόνο σας!

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

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

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

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

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

Σύνδεση

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

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