当需要使用UINT8去解析所传入的数组类型的时候,我们需要使用到传递地址,再通过数组的形式,通过较小的类型去以数组的类型来解析大的类型。
char 类型是1个字节, 占8位, 使用十六进制表示,如:0xFF;
short类型是2个字节,占16位,使用十六进制表示,如:0xFFFF
int 类型是4个字节,占32位,使用十六进制表示,如:0xFFFF_FFFF。
在这里我们将char类型 short类型 int 类型 还有int数组 都传递给char类型 让函数以数组的类型解析传入的参数值。
#include "stdafx.h"
#include <string.h>typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned int uint32_t;int DiReadPorts(uint8_t* buffer);
int DiReadPorts(uint8_t count, uint8_t* buffer)
{printf("count=%d, buffer=%x\n", count, &buffer);for (int i = 0; i < count; i++){printf("%d. buffer=%x\n", i, buffer[i]);}printf("\n\n");return 1;
}int _tmain(int argc, _TCHAR* argv[])
{uint8_t data0 = 0x12;DiReadPorts(1, &data0);uint16_t data1 = 0xabcd;DiReadPorts(2, (uint8_t*)&data1);uint32_t data2 = 0xabcdef59;DiReadPorts(4, (uint8_t*)&data2);uint32_t data3[] = { 0x44332211, 0x88776655, 0xbbaa0099, 0xffeeddcc };DiReadPorts(16, (uint8_t*)&data3);return 0;
}
执行显示如:
最后实现,所有的输入值,按char类型的输出