1. 程式人生 > >給char陣列或者結構體賦值

給char陣列或者結構體賦值

首先,定一個一個結構體

struct ControlWindowMsg{

unsignedchar       buf1;

unsignedchar       buf2;

unsignedcharbuf3;

unsignedchar       buf4;

};

定義一個char型別字元陣列,並且賦值

char buf[4] = {0};

    buf[0] = 1 & 0xff;

    buf[1] = 0 & 0xff;

    buf[2] = 3 & 0xff;

    buf[3] = 104 &0xff;

然後,將buf中的內容賦值給結構體

struct

ControlWindowMsg windowMsg;

memset(&windowMsg, 0, sizeof(windowMsg)); //結構體賦值為0

memcpy(&windowMsg, buf, sizeof(windowMsg)); //結構體賦值

通過列印可以發現,windowMsg賦值成功 ps:順便新增一點

NSTimeInterval timeInerval = [[NSDatedate] timeIntervalSince1970];

int taskId = [[NSStringstringWithFormat:@"%f",timeInerval]

intValue];

    buf[2] = taskId & 0xff;

    buf[3] = (taskId >> 8) & 0xff;

    buf[4] = (taskId >> 16) & 0xff;

    buf[5] = (taskId >> 24) & 0xff;

如果taksId是佔四個位元組的,給buf陣列賦值的時候這樣賦值

相關推薦

char陣列或者結構

首先,定一個一個結構體 struct ControlWindowMsg{ unsignedchar       buf1; unsignedchar       buf2; unsigned

golang-利用反射結構

cnblogs logs val valueof blog eof 成員 str byname 由於想給一個結構體的部分成員賦值,但是有不知道具體名字,故將tag的json名字作為索引,按照json名字來一一賦值 //將結構體裏的成員按照json名字來賦值 func

C語言用結構另一個同類型結構: 用等號即可

看到很多C程式碼的結構體賦值都是用memcpy函式來拷貝,其實根本不需要,用等號直接賦值即可。結構體描述的是的一塊連續記憶體的記憶體佈局,同類型的一個結構體變數給另一個結構體變數賦值,使用等號編譯不會有任何問題,其效果顯然也和人直覺認為的一樣,拷貝對應記憶體。

結構--更改中

#include<iostream> #include<cstdio> using namespace std; const int N=11; int n,m; struct node { int x1,y1,x2,y2; void copy(node &tem

讀取bin檔案,並且按結構列印

目標:讀取一個bin檔案,並且將bin檔案中的資料,按位元組對齊賦值給結構體,並且打印出結構體的內容 目前思路是簡單的先將bin檔案資料一次性讀到一個數組中,再將陣列強制轉換為結構體 char buff[256] FILE *fp; fp = NULL; fp = f

讀取bin文件,並且按結構打印

tails net content nbsp mat was 思路 進行 讀取 目標:讀取一個bin文件,並且將bin文件中的數據,按字節對齊賦值給結構體,並且打印出結構體的內容 目前思路是簡單的先將bin文件數據一次性讀到一個數組中,再將數組強制轉換為結構體 c

C語言中結構問題的討論

結構體直接賦值的實現 下面是一個例項: #include <stdio.h> struct Foo { char a; int b; double c; }foo1, foo2; //define two

結構轉為char陣列 & char陣列轉為結構

The same as 結構體轉為Memory  & Memory 轉為結構體 struct A { int a; int b; int c; int d; float e; //pointer...... };

C語言中結構的討論

今天幫師姐調一個程式的BUG,師姐的程式中有個結構體直接賦值的語句,在我印象中結構體好像是不能直接賦值的,正如陣列不能直接賦值那樣,我懷疑這個地方有問題,但最後證明並不是這個問題。那麼就總結一下C語言中結構體賦值的問題吧: 結構體直接賦值的實現 下面是一個例項: #

[c++] 初始化結構 結構 輸出結構各成員

/*  * 程式的版權和版本宣告部分:  * Copyright (c) 2012, 煙臺大學計算機學院  * All rights reserved.  * 檔名稱:.cpp  * 作    者:毛通  * 完成日期:2013 年 1月22 日  * 版 本

C99標準的結構註解

關於結構體的賦值問題 #include <stdio.h> static struct id_mesg{ char *name; unsigned int age; char *job; }; static struct id_mesg person

c語言 陣列名&&結構名 為什麼不能用陣列陣列結構卻可以

/* name:陣列&&結構體的一些小插曲(陣列名,結構體名,整體賦值...)  */  #include <stdio.h> int main() { char c1[3]={'a','b','c'}; /*c1[3]={'a','b'};這樣不行 why ?so easy! c

結構變數同類型的結構變數

                                          &

用Qstringchar[]陣列

tree_data.Desc  //Desc是char[80]型別的資料 Qstring newDescStr; strcpy(tree_data.Desc , newDescStr.toLocal8Bit().data()); 注意: .toLocal8Bit()為了讓

c中把shortchar陣列

網上很多方法都是使用sprintf來做的,但我要的結果不是這樣的,我只是要int的二進位制放到char裡就完事了,sprintf好像不是這樣,如果是的話,請留言糾正。話不多說,直接上原始碼:char angle[10]; short s = 1000; angle[1] =

定義一個數組,陣列初始長度由控制檯獲取 。隨後手動給陣列中每個元素賦值陣列滿後將陣列長度擴充二倍並輸出,清空陣列中所有元素且繼承陣列長度,並重新進行手動新增元素,無限死迴圈直至輸出-0後結束程式。

package com.tedu; import java.util.Arrays; import java.util.Scanner; /** * 需求: * 定義一個初始陣列,陣列初始長度由控制檯獲取 * 隨後手動給陣列中每個元素賦值,陣列滿後將陣列長度擴充二倍輸

如何陣列中的元素?

如果把單個變數看成是“遊兵散勇”的話,那麼陣列對應的是“集團”。集團的“兵”就是我們前面說的陣列的元素。這些“兵”不再有單獨的名字,而是統一使用編號來區別,這個編號,我們稱為“下標”。 在和陣列打交道時,我們需要分清:是對整個陣列操作,還是對陣列中的單個元素進行操作。 1

unity中利用反射遍歷類或者結構中的每一個欄位屬性 、型別 、

C#利用反射遍歷類或者結構體中的每一個欄位的屬性 型別 值 using System.Collections; using System.Collections.Generic; using U

c++資料型別(整型/浮點型/字串/陣列/引用/結構(記憶體對齊)/類(虛擬函式))定義、所佔位元組數、最大最小

#include<iostream> #include<string> #include<limits> using namespace std; int main() { cout << "type: \t\t" << "********

MyBatis攔截器:參數對象屬性

是否 tle dsta ref 截器 throws dev ndt pri 1 package com.development; 2 3 import java.lang.reflect.InvocationTargetException; 4 impo