![](/img/trans.png)
[英]How do I set a random number of random lowercase characters to a Struct member using memset in C
[英]Do I need to memset a C struct in Swift?
AFAIK,在 swift 中,調用類/結構的默認初始化程序會將所有內容初始化為0
, nil
。 在 C(例如套接字編程)中,有時在使用結構體之前使用 memset 將所有內容設置為 0。 我是否也需要在 swift 中使用 memset 還是我寫的方式很好?
(順便說一句,在這種情況下,使用memset
是因為除以下 2 個參數外, hints
應設置為 0。非 0(垃圾等)將在調用getaddrinfo
時對res
產生副作用。
struct addrinfo hints, *res;
int status;
memset(&hints, 0, sizeof hints);
hints.ai_family = AF_UNSPEC;
hints.ai_socktype = SOCK_STREAM;
status = getaddrinfo(NULL, MYPORT, &hints, &res);
var res = UnsafeMutablePointer<addrinfo>()
var hints = addrinfo()
hints.ai_family = AF_UNSPEC
hints.ai_socktype = SOCK_STREAM
let status = getaddrinfo(nil, MYPORT, &hints, &res)
導入的 C 結構現在在 Swift 中有一個默認初始化器,可以將結構的所有字段初始化為零。
意思就是
var hints = addrinfo()
將struct addrinfo
所有字段初始化為零,無需調用memset()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.