【发布时间】:2018-10-16 20:43:24
【问题描述】:
嗨,我已经阅读了几个小时,仍然无法掌握之间的转换
{
char i ="adf";
char foo[];
char bar[256];
}
加上* 和& 会更混乱
我有一些正在运行的代码。
int TX_SEND(char send[])
{
unsigned char *p_tx_buffer;
p_tx_buffer = &send[0];
strcat(send, "\r");
// Write to the port
int n = write(fd,&send[0],3);
if (n < 0) {
perror("Write failed - ");
return -1;
}
return(0);
}
代码正在运行,但我需要 2 个部分的帮助。
- 我希望能够像
printf IE TX_SEND("AT+CGMSD=STUFF");一样运行此功能,但我被卡住了
但在此之前我经常这样做。
char txsend[] = "at";
TX_SEND(txsend);
- 也在我的
TX_WRITE()中,我使用的是write(fd,&send[0],3),但它被硬编码为从send[]发送3 个字节。我希望这是动态的,所以我可以发送任意长度的字符串(实际上它们总是少于 300 个 ASCII 字符)。我试图用指针做某事但放弃了(*p_tx_buffer是我的开始尝试)。
【问题讨论】:
-
使用
TX_SEND(char * send) -
这会在没有标准库空间的系统上运行吗?也就是说,是不是不能包含“string.h”并调用strlen()来获取传入的字符串长度?
-
他有strcat,所以我想strlen也很好
-
这是一个树莓派,我有足够的空间存放库,strlen() 是用于常量字符串还是字符串数组?
标签: c arrays pointers char uart