如何在Linux中用C语言创建一个字符串(0x01 0x02 0x03……0x50)?

如何在Linux中用C语言创建一个字符串(0x01 0x02 0x03……0x50)?,第1张

首先,0x50比50大,其次你程序定义的两个指针无法存放字符串,只能用来指向一个已经存在的字符串。

#include <stdio.h>

#include <string.h>

#include <stdlib.h>

int main() { char data[0x50+1]={0}int i

for ( i=0i<0x50i++ ) data[i]=i+1

data[i]=0

printf("%s\n",data)

return 0

}

这里用宏的好处太多了。

1、增强代码的可读性。

拿这个例子来说,其他程序员一看这个宏就知道,0x01表示大写字母类型,0x02表示小写字母类型,0x03表示数字类型。然后isalnum是字符c类型判断结果,为零表示c不是字母或数字,不为零则表示c是字母或数字。

2、减少代码运行消耗。

if(isalnum)和if(__ctype[c] &(UPPER|_LOWER|DIGIT))相比,不止是写起来简单、看起来清晰,它的运行效率也更高了吧。

3、增强代码的可移植性。

还是这个例子,如果要求在程序中只需要判断一个字符是否为大写字母,那么只需要把宏改为#define isUpper (__ctype[c] &_UPPER)就可以实现,而不用去代码中找到并修改每一个相关的判断语句。

在linux c编程中学会使用宏,会给你带来很多好处和。。乐趣,呵呵。希望我的回答能对你有些帮助。

在程序中打开你的串口设备,int fdfd = open("/dev/ttyS1",O_RDWD)

比如你要发送0x01,0x02,0x03,0x04,

char buf[256]={0x01,0x02,0x03,0x04}

write(fd,buf,4)

直接往你的串口写四个字节的数就可以了,在你的另一个程序中读取你往串口写的那几个数,十六进制打印出来就可以了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8920925.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-23
下一篇 2023-04-23

发表评论

登录后才能评论

评论列表(0条)

保存