#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)
直接往你的串口写四个字节的数就可以了,在你的另一个程序中读取你往串口写的那几个数,十六进制打印出来就可以了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)