printf 經常有重入和效能上的問題。幫忙解釋一下重入 效能上的問題

2023-02-25 16:20:18 字數 1733 閱讀 9644

1樓:

重入:一般可以理解為一個函式在同時多次呼叫,例如作業系統在程序排程過程中,或者微控制器、處理器等的中斷的時候會發生重入的現象

舉個例子比如雙核計算機多執行緒同時列印文字就可能把文字交替的列印出來了,不是預期要的結果一般浮點運算都是由專門的硬體來完成,舉個例子假設有個硬體暫存器名字叫做float,用來計算和存放浮點數的中間運算結果

假設有這麼個函式

void fun()

假如第一次執行,有個對浮點數操作運算的結果臨時存在float暫存器中,而就在這時被中斷了,而中斷函式或者另一個程序也呼叫fun函式,這時第二次呼叫的fun函式在執行的過程中就會破壞第一次float暫存器中的結果,這樣當返回到第一次fun函式的時候,結果就不正確了。

可以把fun函式理解為printf()函式。

效能:上述的問題也屬於效能問題

2樓:

先解釋重入的問題:

printf()函式與硬體相關,硬體埠相當於全域性變數,函式內部的全域性變數,導致該函式不可重入。

效能上的問題:

對於併發或同時執行的多程序或任務,若要正確使用printf()函式,必須互斥使用,在一個程序或任務執行printf ()時,其他使用printf()的程序或任務只能等待,不能及時顯示。

3樓:

樓上的解答都正確,只不過角度不同。

c語言常見面試題

4樓:邊又柔

網上找的

#include

int cal(int h1,int length,int b);

int main()

int cal(int h1,int length,int b)

5樓:愚雲皇甫佳惠

建立兩個陣列a,b,分別讀取存放texe1.txt

和texe2.txt的姓名,然後對於a[0],遍歷陣列b中的所有元素,如果b中有相同的,則輸出至texe3.txt.

然後對a[1],a[2].....一次進行類似操作.

6樓:gis廣益

你在網上找找 林銳博士的 《高質量 c++/c 程式設計指南》多看看

下面的**就使用了__interrupt關鍵字去定義了一箇中斷服務子程式(isr),請評論一下這段**的錯誤。

7樓:

1、isr不能有返回值,必須用void;

2、isr不能傳遞引數,必須用void;

3、isr應該是短而高效的,所以不推薦在isr中做浮點運算,應該只由中斷髮出訊息或置位標誌然後由應用層去處理其他工作;

4、isr中不應該有重入和效能上的問題,因此使用pintf()函式也是不好的。

8樓:呼延璣

中斷服務程式不能有返回值

做嵌入式系統,c++需要掌握到什麼程度?

9樓:conny的知識小店

windows程式設計應該不需要的,因為微控制器上沒有windows,而且微控制器上現在支援的語言也是c吧,建議學好c吧,如果想要擴充一下知識,再學學c++,不過可能在微控制器上用不上。

10樓:匿名使用者

我用cs51 msp430的時候覺得c就夠用了 c++可能不是都支援吧

然後現在學specc也是隻用c 我覺得你還是好好學c吧

科魯茲1 6semt和駿捷2019效能上那個比較好

科魯茲好 但輪動力肯定是駿捷強 外觀大氣動感。開過朋友1.8的內飾動感。空間大敞亮。皮實安全。方向盤較沉。操控不錯。指向精準 路感清晰 有什麼東西咯噔了下 通過方向盤就感覺出來 有駕駛樂趣。但提速慢 車身重限制了 油耗有點高。在9個以上。再就是這款車發東機很好。由歐寶研發。和我的雅特一樣。開了快4年...

日語口語中句子結尾經常有和,分別表示什麼含義

是個男性用語,女孩子千萬不要說,很粗魯的。一般就是表示強調的語氣 本身沒什麼意思,一般是男性用的多,但現在年輕的女孩也很喜歡用,但是女孩子最好也不要說 在我看來,有時好像還有警告的意思,象 死 會死的 觸 熱 不要碰,很熱的 等。不過這裡不是吧。可能就是個語氣詞。関 諸事項 日本語 強調 終助詞 使...

安全效能上,博瑞和邁銳寶誰更強,博瑞和邁銳寶,哪個更靠譜?

我們老百bai姓買車,安全性 能一定du要放在第一位,這個zhi真的太重要了dao。博瑞安全效能高是出回了名的,這方面答 比同級別很多車型做得都出色。得益於和沃爾沃的合作,博瑞上的安全配置著實不少。例如併線輔助 車道偏離預警 自動泊車 後排遮陽簾等等,8英寸的中控螢幕很大氣。低配版的帕薩特就要寒摻很...