假如,main()中正在調(diào)用A()函數(shù).在此期間,有一中斷,在中斷服務(wù)程序中還要調(diào)用A().
創(chuàng)新互聯(lián)公司從2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都網(wǎng)站設(shè)計、網(wǎng)站制作網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元海西做網(wǎng)站,已為上家服務(wù),為海西各地企業(yè)和個人服務(wù),聯(lián)系電話:13518219792
如果這個A()可以被調(diào)用就算是可重入
反之算不可重入.
可重入與不可重入的區(qū)別在這個函數(shù)的內(nèi)容是否會相互沖突...例如A()中有個靜態(tài)變量...就不可以..
#includestdio.h
#includestdlib.h
void?main(void)
{
int?a;
printf("please?input?a?number?(1-100)\n");
?while(1)
?{
scanf("%d",a);
{
if(a=60)
{
printf("not?pass!please?try?more?hard!\n");???/*希望小小于60時重新開始,大于60通過*/
continue;
}
if(a60)
{
printf("Pass!");
return?EXIT_SUCCESS;
}
}
?}
system("pause");
}
可以使用全局變量、靜態(tài)變量。關(guān)鍵是不是“只讀”。如果只讀,那怎么用都行。如果有寫的操作,最好避開,實在避不開就要用信號量等機制防止多線程沖突。
另外就是調(diào)用的函數(shù)要線程安全, thread-safe.具體那些函數(shù)線程安全,需要查閱手冊。