另類的結構體賦值語法

2021-04-21 00:11:55 字數 536 閱讀 8499

再看linux kernel**的時候發現的東東

static struct inet_protocol tcp_protocol = ;

開始不曉得啥意思,原來是這樣的。

struct inet_protocol

;原來意思是將handler賦值成tcp_v4_rcv, err_hander賦值成tcp_v4_err, 以此類推。

今天又發現一種賦值的形式:

static struct inet_protocol tcp_protocol = ;

前面加個點,後面加個等號,這樣都可以。

下面是乙個獲得結構體偏移的方法。

#include

struct aa

b,c;

int main()

輸出內容:

hman@linux-plog:~> ./a.out

0x804a01c

804a01c

b.a is 4, b.b is a

offset of a is 4

C語言的另類結構體賦值

這幾天看linux的核心原始碼,突然看到init pid ns這個結構體變數的賦值特別奇怪。struct pid namespace init pid ns last pid 0,level 0,child reaper init task,請注意上面 的.pidmap這個結構體陣列的賦值形式。0 ...

陣列 結構體的賦值

在 c c 中,普通陣列只是分配在連續位址上的一段相同型別的變數組成的,而不是乙個變數。像a n 並不是乙個變數,而是通過指向第乙個值的指標來操作 的。陣列和指標有著很密切的聯絡。可以認為陣列操作是指標操作的另一種寫法。因此像陣列整體賦值這類操作是沒有意義的,因為它們不是乙個整體。通俗的說比如陣列a...

結構體賦值問題

首先定義兩個結構體 struct udpdata struct scanudpdata short itotaly long ltotalx udpdata udpdata int callnum udpthread收資料的次數 然後給結構體賦值 pdata new udpdata 注意 此處要ne...