C語言 串口傳輸 結構體


串口傳輸 結構體 就是 把結構體 轉換為 數組 ,然后傳輸 數組中的 char。

即 struct - - - - - - ->> char [ ] ;

然后 char[ ] - - - -- - - - -->> struct 。

給出一下簡單實例代碼 :

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

struct data{	
	int id;	
	int score;
	char name[10];
};  

#define SIZE sizeof(struct data)

void struct_array(char* des, struct data *src)
{	
	int num;	
	char *temp = (char *)src ;	
	for(num=0; num<SIZE; num++)		
		*(des+num)= temp[num];	 
}  

void array_struct(struct data * des ,char * src)
{ 	
	int num;
	char* temp = (char *)des;		
	for(num=0; num<SIZE; num++)		
		*(temp++) = src[num];
}  

void show_array(char *str ,int len )
{		
	while(len--)	
	{		
		putchar('|');		
		putchar(*str++);	
	}	
	printf("|\n");
} 	 

int main()
{	
	printf("struct size %d\n",SIZE);
		
	struct data *shm = (struct data *)malloc(SIZE);
	shm->id=1;
	shm->score=98;
	strcpy(shm->name, "admin");
	
	char buf[SIZE]={"\0"};
	struct data *str = (struct data *)malloc(SIZE);

	struct_array(buf, shm);
	show_array(buf , SIZE);
	array_struct(str, buf);
	
	printf("%d\n%d\n%s\n", str->id, str->score, str->name);
	
	free(shm);
	free(str);
	
	return 0;
} 

  

運行結果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM