gpt4 book ai didi

c - 制作一个指向两个字节的指针

转载 作者:行者123 更新时间:2023-12-02 05:27:44 27 4
gpt4 key购买 nike

除了呼吸之外,我在所有方面都是新手,如果我不清楚,很抱歉,但这里是:

我在 C 中有一个函数,它通过 I2C 总线将字节写入电路,在头文件中它看起来像这样:

BOOL WINAPI JidaI2CWrite(HJIDA hJida, DWORD dwType, BYTE bAddr, LPBYTE pBytes, DWORD dwLen);
  • hJida:棋盘句柄。
  • dwType:I2C 的从零开始的数字公共(public)汽车。
  • bAddr:设备地址I2C 总线,完整的 8 位写到总线上。
  • pBytes:指向位置的指针包含字节。
  • dwLen:要写入的字节数。

如果我只想向地址为 0x98 的电路写入一个字节,我会这样做:

unsigned char writing[1];
writing[0]=0x10;

unsigned char *pointer;
pointer = &writing[0];


JidaI2CWrite(hJida,0,0x98,pointer,1);

这似乎可行,但如果我想写两个字节,比如 0x10FF,它就不行。那么如何创建一个指向两个字节而不是一个字节的指针呢?

谢谢

最佳答案

你想要这样的东西:

unsigned char writing[2];
writing[0] = 0x01;
writing[1] = 0x02;

JidaI2CWrite(hJida, 0, 0x98, writing, 2);

请注意,C 中的数组通常可以像指针一样使用。变量 writing 可以被认为只是一个指向内存块的指针,在本例中,内存块的大小为 2 个字节。创建另一个指向该位置的指针是多余的(在这种情况下)。

注意你可以让它指向任意数量的字节:

unsigned char writing[12];

//fill the array with data

JidaI2CWrite(hJida, 0, 0x98, writing, 12);

关于c - 制作一个指向两个字节的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1299912/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com