单片机用C语言向SD写入指令中“((unsigned char *)&argument)[0]”是什么意思、怎么用?

Python023

单片机用C语言向SD写入指令中“((unsigned char *)&argument)[0]”是什么意思、怎么用?,第1张

一层层的扒开来解释

1、&argument -- 取变量argument的地址

2、(unsigned char *)(&argument) -- 将这个地址强制类型转换为无符号字符型的指针

说明:类似于(unsigned char *)0x10010010,讲一个整型数强制类型转化成一个指针值,然后可以做绝对地址的访问。

3、(unsigned char *)(&argument)[0] -- 将这个指针用数组的方式访问

说明:有时我们可以这样来访问 (1) unsigned char *p p[0] 等于同*p p[1]等同于*(p+1)

(2)unsigned char a[5]*a 等同于a[0]*(a+1)等同于a[1]

最终完成的功能就是将32位的argument拆成4个8位的字符型数据,如果您觉得复杂你可以这样来写

SdWrite(unsigned char)(argument>>24))

SdWrite(unsigned char)(argument>>16))

SdWrite(unsigned char)(argument>>8 ))

SdWrite(unsigned char)(argument>>0 ))

#include "stdio.h"

int main()

{

FILE *file

char fileName[100] = "C:\\Users\\Administrator\\Desktop\\abc.txt"//文件地址

int data

//打开文件

file = fopen(fileName,"r")

if(file == NULL)

{

printf("文件不存在\n")

exit(0)

}

fscanf(file,"%d",&data)//读取文件数据

printf("%d\n",data)//显示到屏幕

fclose(file)//关闭文件

}