1樓:重慶新華電腦學校
棧就是乙個空間,宣告時候產生。
虛擬棧 來和 c 互傳值。 棧上的的每個元素都是乙個 lua 值 (nil,數字,字串,等等)。
無論何時 lu a 呼叫 c,被呼叫的函式都得到乙個新的棧, 這個棧獨立於 c 函式本身的棧,也獨立於之前的 lu a 棧。 它裡面包含了 lu a 傳遞給 c 函式的所有引數, 而 c 函式則把要返回的結果放入這個棧以返回給呼叫者。
方便起見, 所有針對棧的 api 查詢操作都不嚴格遵循棧的操作規則。 而是可以用乙個 索引 來指向棧上的任何元素: 正的索引指的是棧上的絕對位置(從1開始); 負的索引則指從棧頂開始的偏移量。
來說,如果堆疊有 n 個元素, 那麼索引 1 表示第乙個元素 (也就是最先被壓棧的元素) 而索引 n 則指最後乙個元素; 索引 -1 也是指最後乙個元素 (即棧頂的元素), 索引 -n 是指第乙個元素。
當你使用 lu a api 時, 就有責任保證做恰當的呼叫。 特別需要注意的是, 你有責任控制不要堆疊溢位。 你可以使用 lua_checkstack 這個函式來擴大可用堆疊的尺寸。
無論何時 lu a 呼叫 c , 它都只保證至少有 lua_minstack 這麼多的堆疊空間可以使用。 lua_minstack 一般被定義為 20 , 因此,只要你不是不斷的把資料壓棧, 通常你不用關心堆疊大小。
當你呼叫乙個 lua 函式卻沒有指定要接收多少個返回值時 (參見 lua_call), lua 可以保證棧一定有足夠的空間來接收所有的返回值, 但不保證此外留有額外的空間。 因此,在做了一次這樣的呼叫後,如果你需要繼續壓棧, 則需要使用 lua_checkstack。
2樓:圖南很厲害
棧(stack)又名堆疊,它是一種運算受限的線性表。限定僅在表尾進行插入和刪除操作的線性表。這一端被稱為棧頂,相對地,把另一端稱為棧底。
向乙個棧插入新元素又稱作進棧、入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素;從乙個棧刪除元素又稱作出棧或退棧,它是把棧頂元素刪除掉,使其相鄰的元素成為新的棧頂元素。
什麼是棧?
3樓:教育小百科達人
棧的最主要特點是後進先出。
棧是一種運算受限的線性表,限定僅在巨集老耐表尾進行插入和刪除操作的線性表。棧的所有插入和刪除操作均在棧頂進行,而棧底不允許插入和刪除。
向乙個棧插入新元素又稱作進棧、入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素;從乙個棧刪除元素又稱作出棧或退棧,它是把棧頂元素刪除掉,使其相鄰的元素成為新的棧頂元素。
程式開發中程式設計介面,棧的理解?
4樓:重慶新華電腦學校
程式設計介面就是對於某種邏輯寫的一定規範的資料格式,就是宿主程式跟 lu通訊用的一組 c 函式。 所有的 api 函式按相關的型別以及常量都宣告在標頭檔案 中。
雖然我們說的是「函式」, 但一部分簡單的 api 是以巨集的形式提供的。 除非另有說明, 所有的這些巨集都只使用它們的引數一次備指談 (除了第乙個引數,那一定是 lu狀態), 因此你不需擔心這些巨集的會引起一些***。
c 庫中所有的 lua api 函式都不去檢查引數是否相容及有效。 然而,你可以在編譯 lu 時加上開啟乙個巨集開關 lua_use_apicheck 來改變這個行為。
lu使用乙個 虛擬棧 來和 c 互傳值。 棧上的的每個元素都是乙個 lu 值 (nil,數字,字串,等等)。
無論何時 lua 呼叫 c,被呼叫的函式都得到乙個新的棧, 這個棧獨立於 c 函式本身的棧,也獨立於之前的 lu棧。 它裡面包含了 lu傳遞給 c 函式的所有引數, 而 c 函式則把要返回的結果放入這個棧以返回給呼叫者。
方便起見, 所有針對棧的 api 查詢操作都不嚴格遵循棧的操作規則。 而是可以用乙個 索引 來指向棧上的任何元素: 正的索引指的是棧上的絕對位置(從1開始); 負的索引則指仿碰從棧頂開始的偏移量。
來說,如果堆疊有 n 個元素, 那麼索引 1 表逗消示第乙個元素 (也就是最先被壓棧的元素) 而索引 n 則指最後乙個元素; 索引 -1 也是指最後乙個元素 (即棧頂的元素), 索引 -n 是指第乙個元素。
棧大小。當你使用 lu api 時, 就有責任保證做恰當的呼叫。 特別需要注意的是, 你有責任控制不要堆疊溢位。 你可以使用 lua_checkstack 這個函式來擴大可用堆疊的尺寸。
無論何時 lu 呼叫 c , 它都只保證至少有 lua_minstack 這麼多的堆疊空間可以使用。 lua_minstack 一般被定義為 20 , 因此,只要你不是不斷的把資料壓棧, 通常你不用關心堆疊大小。
當你呼叫乙個 lua 函式卻沒有指定要接收多少個返回值時 ()lua 可以保證棧一定有足夠的空間來接收所有的返回值, 但不保證此外留有額外的空間。 因此,在做了一次這樣的呼叫後,如果你需要繼續壓棧, 則需要使用 lua_checkstack。
小程式是如何開發的,小程式怎麼開發?
一 懂 程式設計的話,自己敲 或者組織團隊開發。二 不懂 程式設計的話,常見的就是模板開發 定製開發這兩類,也就是找第三方公司開發。1 模板開發,是直接套用服務商開發好的模板,上線時間快,價效比高,3000左右就可以,符合商家的基本需求。2 定製開發,由開發公司根據你的需求i一個個開發,開發時間長,...
請問儲存器中的棧怎麼理解,組合語言中的棧,壓棧,出棧是什麼意思
這沒什麼可以解釋的,也不難理解啊。就是排隊,誰先來誰最後走,誰後來誰先走。給你說個應用吧,就是求四則運算的表示式的值,1 1 2 3 4 棧裡存的東西有括號還有運算子,先存進去了 然後來了個 然後又來了個 就倆 一起出棧,然後就是 再一起出棧。這樣就實現這個運算了。就相當與一個試管,往裡面扔硬幣,你...
開發小程式公司最好的是哪個,小程式開發選擇哪個公司比較好?
開發小程式公司有很多,至於哪個比較好,是需要對比的,選擇適合自己的就是最好的。首先需要了解小程式公司有哪些,例如想找廣州本地的可以搜尋 廣州小程式公司 然後從搜尋結果中進行對比。一般來說,挑選小程式開發公司需要注意以下幾點 1 小程式開發公司是否是正規公司 2 小程式開發公司是否有實體公司 3 小程...