走在時代前沿的前言 嗨大家我又來了,我 CX330。昨天我們已經初探了 Windows 的架構和記憶體分配等等的,今天要來跟大家聊聊 Windows API!...
走在時代前沿的前言 嗨大家,我 CX330。今天事情有點多,不知道寫不寫得完 XD。 昨天聊了 Shellcode 和 Payload 的放置等等,今天想要來把...
走在時代前沿的前言 歡迎回來,蜥蜴兵們,我是 CX330。昨天已經結束了我們的新手訓練營,也把語法都講過了大概,那今天就要來開始進入惡意程式的內容囉! 今天要來...
走在時代前沿的前言 嗨諸位,我 CX330,我又回來了。昨天帶大家看了很多複合類型,今天是新手訓練營的最後一天啦!今天要帶大家看看 Zig 的可選類型、錯誤處處...
走在時代前沿的前言 歡迎回來小蜥蜴們,我 CX330!今天是我們新手訓練營的第二天!昨天和大家介紹了 Zig 的一些基礎語法,今天要來帶大家寫一下 Hello...
走在時代前沿的前言 歡迎回來小蜥蜴們,我是 CX330!昨天已經讓大家把環境給安裝好了,今天就會正式進入我們的暗影綠鬣蜥訓練!語法的部分我總共打算分為 3 天,...
依照慣例小聊一下 「要參加嗎?我要寫什麼當主題呢?大家都喜歡看什麼樣的內容?我寫的完嗎?三十天其實有點多,會不會沒內容?」 這大概就是我在開賽前的內心活動。...
總算是到最後一天了。在先前的內容中,我們從安裝 Zig 開始,一步步介紹 Zig 的各種基本語法和特性,我也是一邊寫文章、一邊寫程式一同學習 Zig。 Zig...
Zig 使用一個 build.zig.zon 來管理專案,其中也包含使用第三方依賴套件,這個有點類似 JavaScript 的 package.json。 Z...
Zig 使用一個 build.zig 來配置建置,有點類似 Makefile。 build.zig 使用 zig init 建立的預設專案中會有一個 buil...
先前已經介紹過基本的 for 和 while 迴圈用法,這裡來介紹一些更進階的功能和語法。 Loop as Expression Zig 的迴圈可以作爲表達式...
對於常寫 Python 的人應該很熟悉迭代器,在處理一些資料時比單純的陣列好用。Zig 通常使用擁有 next() 方法的 struct 來代表迭代器。 基礎...
有時候會需要寫一些比較複雜的多層迴圈程式,但這時如何要使用 break 或 continue 時會沒辦法控制要對哪一層迴圈進行。對於這種情況,只要爲迴圈打上標籤...
comptime 是 Zig 的一大特色,使用它可以將許多運算帶到編譯期,從而提高運行時的效率。這個功能類似 C++11 的 constexpr 和 C++20...
Hash Map 是一種 key-value pair(鍵值對),類似於 Rust 的 HashMap<K, V> 或 Python 的 dict。...
ArrayList 是一種動態的數組容器,可以儲存相同型別、不定長度的資料(執行期分配),類似 Rust 中的 Vec<T>。 基礎 ArrayL...
Allocator 是 Zig 標準庫提供的功能,用來分配記憶體,尤其是涉及動態分配的情況。 Page 最基本的是 Page Allocator,使用 std...
defer 對於 C 和 Rust 的使用者是個比較陌生的語法,它是用來在離開目前的作用域(Scope)時自動執行表達式(expression)。 它通常用來...
Vector 可以用來儲存一組相同型別的資料,其長度和型別需在宣告時指定且不能變更,支援 SIMD(Single instruction, multiple d...
到目前爲止已經把基本的型別都介紹完了,這篇來介紹一下進階的型別用法。 packed packed 在 C 中不是標準的關鍵字,但是大多數的編譯器都有支援相關的...
Zig 使用 error 建立錯誤集合型別。 Zig 不使用多少現代語言常見的 try-catch、exception 機制處理錯誤,而是選擇和 Rust 類...
for 是一種基於可迭代(Iterate)陣列的迴圈。 Zig 的 for 是比較接近如 Python 這種直接針對可迭代的迴圈,而不是傳統 C 的那種針對數...
while 是一種條件迴圈,只要條件符合,就會一直執行。 基本 Zig 的 while 語法和多數語言相同,和 if 一樣,普通的條件式需爲明確的 bool...
switch 通常用來匹配一個變數的多種數值。 如果你和我一樣,原本是寫 C,後來接觸了 Rust,那你一定對 Rust 的 match 模式配對愛不釋手,希...
if 是各種語言的最基本的語法。 基本 Zig 的普通 if 語法使用 if、else if、else,且條件需要使用括號 () 包圍。條件式需要是明確的 b...
指標(Pointer)是所有 C 語言使用者最熟悉的功能與特性,而 Zig 也延續了這種低階卻強大的記憶體操作能力。 指標,是一個指向數值的記憶體位置,不實際...
如果你想要一個可選的數值,那 Optional 是一個好選擇。 類似於 Rust 的 Option<T>,Zig 的 Optional 提供數值被...
陣列 Array 是每個語言都有的基本功能,而切片 Slices 則是現代語言常見的陣列參照。 陣列 基本 陣列在編譯期確定長度、單一型別。宣告時可以省略長度...
union 用來定義多型別單一值。 如有某一個數值在概念上可以用多種型別表達,但同時只會是一種型別的話,就可以用 union 處理。 基本 const std...
列舉(Enum)也是各個語言中常見且好用的自訂型別。 和多數語言一樣,enum 可以用來創造一些固定的「選項」,對程式碼可讀性和強健性來說都很好用。比較特別的...