可重入(reentrant)函數(shù)可以由多于一個任務(wù)并發(fā)使用,而不必?fù)?dān)心數(shù)據(jù)錯誤。相反, 不可重入(non-reentrant)函數(shù)不能由超過一個任務(wù)所共享,除非能確保函數(shù)的互斥(或者使用信號量,或者在代碼的關(guān)鍵部分禁用中斷)。
成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:做網(wǎng)站、成都網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的夷陵網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
可重入性是函數(shù)編程語言的關(guān)鍵特性之一。 例子在以下的C語言代碼中,函數(shù)f和函數(shù)g都不是可重入的。
可以使用全局變量、靜態(tài)變量。關(guān)鍵是不是“只讀”。如果只讀,那怎么用都行。如果有寫的操作,最好避開,實在避不開就要用信號量等機(jī)制防止多線程沖突。
從C語言的語法設(shè)計來說是不支持的,早期的C編譯器未考慮過函數(shù)重載這一功能,所以就會有那么多類似的函數(shù)abs,labs,fabs等等(每種類型都要考慮一個不同的函數(shù)名)。
C語言是不支持函數(shù)重載的,但是C++是可以的,這是C++對C的一個重要擴(kuò)展。
當(dāng)將要定義一組函數(shù),使它們執(zhí)行一系列的操作,但是它們是應(yīng)用在不同的參數(shù)類型上的。此時可以選擇重載函數(shù)。
C語言中,有沒有參數(shù)的函數(shù)都不能重載,只有C++才有函數(shù)重載功能。
不支持,C里面沒有重載這個概念。因為C不是面向?qū)ο蟮恼Z言。
所謂可重入是指一個可以被多個任務(wù)調(diào)用的過程,任務(wù)在調(diào)用時不必?fù)?dān)心數(shù)據(jù)是否會 出錯。不可重入函數(shù)在實時系統(tǒng)設(shè)計中被視為不安全函數(shù)。
從字面上的意思就是,可以重復(fù)進(jìn)入??芍厝胧窃诙嗳蝿?wù)系統(tǒng)下的概念,意思是這個函數(shù)可以在運行到任意位置的時候被中斷去執(zhí)行其他任務(wù),并且返回的時候不會出現(xiàn)任何錯誤。為什么在多任務(wù)的時候才有這種概念。
單片機(jī)的函數(shù)理論上都應(yīng)采用不可重入的方式訪問。