Új hozzászólás Aktív témák

  • Karma

    félisten

    válasz labuwx #2620 üzenetére

    A volatile nem azért kell, hogy elérhesd interruptból (ahhoz csak "megfelelő" helyre kell tenned), hanem azért, hogy a fordító ne optimalizálja ki az olyan ifeket és for/while ciklusokat, ahol ennek a struktúrának az elemeit használod fel a feltételben.

    Volatile nélkül ugyanis azt gondolhatja a fordító megfelelően magas -O szint mellett, hogy "na ez biztos nem változik meg, ez a feltétel felesleges, kidobom" - és csodálkozhatsz hogy nem reagál a program. A volatile ezt tiltja meg.

    BTW szerintem egyszerűbb lenne, ha nem a heapen hoznád létre ezt a struktúrát. Végülis elég kicsi. Az interruptos elérés miatt lehet, hogy globális változónak praktikusabb (más fordítási egységben. pl. az interruptkezelődben meg externnel hivatkozol rá).

    [ Szerkesztve ]

    “All nothings are not equal.”

Új hozzászólás Aktív témák