Lua程式設計(八十三)

2021-09-19 01:38:15 字數 1153 閱讀 6774

lua是一種安全的語言,這意味著不管用lua寫什麼,也不管寫出來的內容有多麼不正確,lua自身所提供的機制總是能用來理解程式的行為。此外,程式中的錯誤(error) 也是通過lua語言的機制來檢測和解釋的。與之相對的是,許多c語言**中的錯誤只能從底層硬體的角度來解釋(例如,把異常位置作為指令位址給出)。

一旦我們向lua語言中加入新的c函式,這種安全性就可能被打破。例如,乙個等價於basic命令poke的函式(該函式用於將任意的位元組儲存到任意的位址中)就可能導致各種各樣的記憶體崩潰。因此,程式設計師的責任就是確保加入到lua語言中的內容是安全的,並提供妥善的錯誤處理。

c語言程式必須通過lua_pcall設定錯誤處理。不過,在為lua編寫庫函式時,通常無須處理錯誤。庫函式丟擲的錯誤要麼被lua中的pcall捕獲,要麼被應用**中的lua_pcall捕獲。因此,當c語言庫中的函式檢測到錯誤時,只需簡單地呼叫lua_error即可(或呼叫lual_error, 它會格式化錯誤資訊,然後呼叫lua_error)。函式lua_error會收拾lua系統中的殘局,然後跳轉回保護模式呼叫處,並傳遞錯誤資訊。

lua 5.3中,由於整型總是可以被強制轉換為浮點型,因此仍然可以用函式lua_tonumber「%g"的格式列印所有的數值。但是,我們更傾向於將整數列印為整型,以避免損失精度。此時,我們可以使用lua_isinteger來區分整型和浮點型:

case lua_number:

NOIP模擬 八十三

csp後第一次模擬,好像以後都和外校聯考了。60 90 25 30 菜。t1t2被大力卡常,t3t4只會暴力。一眼線段樹 題,然後看到5000000,貌似可以帶個 log,於是就沒多想。其實掃一遍也挺顯然的。垃圾oj跑個 n 的5000000跑了一秒六,怕不是上世紀五十年代的剩餘產品?include...

(八十三)邏輯表示式

邏輯表示式的核心是邏輯運算子。邏輯運算子有三個 注意,沒有雙引號,意思是 or 在 左右兩邊的表示式,只要有乙個成立,那麼這個邏輯表示式的值就是true。只有兩個都不成立,才是false 同樣沒有雙引號,意思是 and。在 左右兩邊的表示式,只要有至少乙個不成立,就是false,只有兩個都成立,才是...

C 高階程式設計八十三天 程式集的含義

程式集的含義 一.程式集是包括乙個或多個型別定義檔案和資源檔案的集合 它同意我們分析可重用型別的邏輯表示和物理表示 相當於你定義了乙個專案xxproject,專案存在非常多檔案 類 視窗,介面 資源等等 編譯生成乙個 dll檔案 就是程式集 當你使用這個程式集的時候,引用改程式及就能夠得到該程式集裡...