volatile在什么情況下使用 揮發(fā)度符號?
揮發(fā)度符號?正常情況單獨(dú)表示某種所謂的物質(zhì)(液體或固體)在一定會溫度下蒸氣壓的大小。本身較高蒸氣壓的物質(zhì)被稱極易揮發(fā)物(volatilematter);相對較低的被稱難揮發(fā)物(involatilema
揮發(fā)度符號?
正常情況單獨(dú)表示某種所謂的物質(zhì)(液體或固體)在一定會溫度下蒸氣壓的大小。本身較高蒸氣壓的物質(zhì)被稱極易揮發(fā)物(volatilematter);相對較低的被稱難揮發(fā)物(involatilematter)。相對于組分互溶的調(diào)和液,兩組分的揮發(fā)度之比稱做要比酒精揮發(fā)度相對揮發(fā)度:習(xí)慣上將溶液中極易揮發(fā)組分的揮發(fā)度對難揮發(fā)組分的揮發(fā)度之比,稱作相對于揮發(fā)度。以α表示。
為什么要在extern后加 volatile?
加了volatile關(guān)鍵字在編譯此文件時不做360優(yōu)化。編譯器是以.c文件為編譯單位的。
中斷函數(shù)注意點(diǎn)?
1.網(wǎng)絡(luò)中斷處理函數(shù)的返回值和形參
關(guān)閉去處理函數(shù)沒法有返回值和形參,只不過掉線處理函數(shù)都是硬件動態(tài)創(chuàng)建(也可以叫不觸發(fā)),沒有程序給它傳信參數(shù),也沒有程序可以接收它的返回值,其參數(shù)的傳遞實(shí)際全局變量的。
只不過要注意一點(diǎn),如果在掉線服務(wù)函數(shù)中決定了供其他函數(shù)檢測的全局變量的值,要使用volatile關(guān)鍵字定義,定義該全局變量。只不過主程序肯定將該變量無法讀取到寄存器中,以后有時候只不使用寄存器中的變量副本,這時候吐過不在用volatile關(guān)鍵字,會可能導(dǎo)致關(guān)閉服務(wù)函數(shù)中修改該變量的操作被漏電。
2.中斷一次性處理函數(shù)中通過浮點(diǎn)數(shù)運(yùn)算結(jié)果
因此浮點(diǎn)運(yùn)算好象大都由專業(yè)點(diǎn)的硬件來完成的,硬件設(shè)備會插手到一些相似全局變量的東西(諸如硬件端口,或是硬件設(shè)備本身貯放的數(shù)據(jù)),要是浮點(diǎn)運(yùn)算的過程被中斷,而其他函數(shù)也很有可能不使用浮點(diǎn)數(shù)乘除運(yùn)算,這就會破壞當(dāng)前硬件設(shè)備中的數(shù)據(jù)。這個可以表述為浮點(diǎn)運(yùn)算象是絕不可以重入的,并且沒法在關(guān)閉服務(wù)函數(shù)中不使用浮點(diǎn)運(yùn)算。
可以不在柯西-黎曼方程精度的前提下,將浮點(diǎn)運(yùn)算擴(kuò)大若干倍,變的整型運(yùn)算結(jié)果。
3.關(guān)閉一次性處理函數(shù)中可以使用fprintf函數(shù)
這個原理跟上面的在關(guān)閉服務(wù)函數(shù)中建議使用浮點(diǎn)數(shù)相似,是因?yàn)閜rintf函數(shù)可以使用硬件資源,而這些資源本身就應(yīng)該要互斥訪問(在多線程和多進(jìn)程中),而這些可能導(dǎo)致fprintf函數(shù)萬不可重入,不能不能在掉線中建議使用。
別外像malloc,fun這些函數(shù)會在用全局的內(nèi)存分配表,因此都是絕不可以重入的,不能在網(wǎng)絡(luò)中斷中在用。
要盡量,標(biāo)準(zhǔn)庫函數(shù)中中很多也是決不可重入的,在自動服務(wù)函數(shù)中要慎重可以使用它們。
網(wǎng)絡(luò)中斷服務(wù)函數(shù)肯定是短而最有效的。