簡體   English   中英

C ++和GCC:GCC的C ++實現如何處理除零?

[英]C++ & GCC: How Does GCC's C++ Implementation Handle Division by Zero?

只是出於興趣。 GCC的C ++實現如何處理標准數字類型除以零? 也有興趣了解其他編譯器如何在零分割方面工作。 隨意詳細說明。 這不僅僅是為了娛樂,因為它與單一的任務半關聯。

干杯,Chaz

它沒有。 通常發生的情況是,當除法指令的操作數為0時,CPU將拋出某種類型的內部異常,這將觸發一個中斷處理程序,該處理程序讀取CPU上各種寄存器的狀態並處理它,通常是通過轉換它被發送回發送給程序並由任何注冊信號處理程序處理的信號。 對於像操作系統這樣的大多數unix,它們都有一個SIGFPE。

雖然行為可能會有所不同(例如,在某些CPU上,您可以告訴CPU不要引發異常,通常它們只是將一些鉗位值設置為0或MAXINT),這種變化通常是由於OS,CPUm和運行時的差異造成的。環境,而不是編譯器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM