可重入函數要麼使用本地變量,要麼在使用全局變量時保護自己的數據。
可重入函數可以在任意時刻被中斷,稍後再繼續運行,不會丟失數據。
確保準則3得到滿足,要求編譯器預先知道所有可重入函數,包括應用程序所使用的程序庫。
注意,這裏遵循了標準慣例,通過向函數名添加“_ r”後綴來命名可重入函數。
即使是不可重入函數這種非常冷僻的主題,也給予了足夠的重視。
我將提出一個在編譯器層次處理可重入函數的模型。
定義了可重入*,幷包含一個可重入函數的POSIX清單。
絕不調用任何不可重入函數。