
C语言
敏哥搞wifi
奋斗到无能为力,拼搏到感动自己。
展开
-
C语言中的''\0",让你透彻到底
C语言字符串末尾的''\0",很重要,它不占字符串的实际长度,但是比如字节数为5的时候,最后一个字节不为\0的话,那么输出后的就是乱码。所以,最好主动在字符串末尾加\0的重要性。但是,哪些情况可以不用加"\0"呢,编译器会自动补上?1,对于初始化指针,char *p="abcde"; 最后不用加零,自动补上。2, char s[]="abcd"; 对于这种未指定长度的字符数组,不原创 2014-03-02 13:38:36 · 3187 阅读 · 0 评论 -
BCD码转十进制字符串
void BCDCodeToDecimalString(unsigned char x[],int len,char* y){ for(int i(0);i { if(x[i]>=0x00&&x[i] { y[i*2] = '0'; sprintf((y+i*2+1),"%x",x[i]原创 2014-03-08 13:19:09 · 1207 阅读 · 0 评论 -
PC,虚拟机,开发板相互访问网络配置以及挂载NFS
开发板,pc,虚拟机相关IP设置:虚拟机:ifconfig eth1 192.168.200.208 netmask 255.255.255.0route add default gw 192.168.200.10NFS配置:编辑/etc/exports,在最后一行加入:mkdir /xwm/xwm *(rw,sync,no_root_squash)启动相关服务:原创 2014-03-08 13:22:50 · 787 阅读 · 0 评论 -
C语言按行读取实际字符
当使用fgets(buf,size,fp)函数读取文件中的行时,最后一行不包含换行符,那怎么让其它行也不包含呢?这么整char buf[50];while(!feof(fp))//如果文件没有到达末尾则循环{ fgets(buf,50,fp);//读取一行 if(feof(fp))//检测文件,如果到达末尾就读取实际字符,因为此时不包含换行符 {原创 2014-03-08 13:19:36 · 1652 阅读 · 0 评论 -
关于C语言结构体成员变量偏移的一点思考
windows环境中,默认是4字节对齐。在VS2008环境中也可以进行设置对齐方式,同时下面的这句代码也可以进行设置预处理可以设置字节对齐方式 #pragma pack(1) 代表1字节对齐下面的处理方式以 1 字节对齐注意:如果结构体成员变量全部定义为 unsigned char型,也不用考虑字节对齐的问题。单字节的数据本来就是连续存放的一般来讲,关于成员原创 2014-03-02 14:23:03 · 1275 阅读 · 0 评论 -
关于feof函数使用的说明
函数原型: int feof(FILE *stream);功能:检测流上的文件结束符返回值:feof(fp)有两个返回值:如果遇到文件结束,函数feof(fp)的值为非零值,否则为0。什么时候结束了,当读取到那个字节为0xFF时,就结束了。EOF是文本文件结束的标志,在文本文件中都是以ASCII码字符表示的,取值范围 0-127 共128个字符,EOF的16进制代码为0x1A(十进原创 2014-03-02 14:18:59 · 11685 阅读 · 0 评论 -
C语言static关键字说几点
仅仅在C语言中。不谈C++,因为C++中类里面的static,又有很多东西,就不说了。1,用static声明的变量存放在静态存储区,这个东西只有程序结束时才没了。要不然一直存在,你可以随时改变它的值。2,用static修饰的变量或函数只在本文件起作用,在函数内部,作用域就在函数内部,依次类推。3,最想说的是,如果一个static变量放在头文件中,static int a = 2;在a.原创 2014-03-02 14:17:32 · 729 阅读 · 0 评论 -
inline关键字
inline就是个内联函数的关键字,只想说一点。有时候你想在头文件定义一个剪短的函数,发现有多个文件都包含这个函数的头文件,你肯定编译不过,提示什么函数重定义,这时,怎么办呢?在函数前面加个关键字inline就搞定了。原创 2014-03-02 14:15:53 · 601 阅读 · 0 评论 -
CheckSum总和校验码实现原理
在远距离通信中,保证数据完整性和准确性,在数据最后附上总和检验码是很有必要的,带上一个1字节的数据,效率高也起到了一定的安全性。Checksum:总和检验码,校验总和。在数据处理和数据通信领域中,用于校验目的的一组数据项的和。这些数据项可以是数字或在计算检验总和过程中看作数字的其它字符串。它通常是以十六进制为数制表示的形式,如 0102030405060708原理:通常我们原创 2024-12-15 20:34:01 · 648 阅读 · 0 评论 -
非对称加解密原理
非对称加解密需要两个秘钥:公开秘钥(publickey)和私有密钥(privatekey)。公开秘钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的秘钥,所以这种算法叫作非对称加解密算法。实现方案:加密原理:1,先产生一组随机数,32字节2,根据产生的随机数原创 2014-03-02 14:10:07 · 1230 阅读 · 0 评论 -
被遗忘的volatile关键字
1,是类型修饰符,用来修饰被不同线程访问和修改的变量,如果没有volatile,基本上会导致这样的结果:要么无法编写多线程程序,要么编译器失去大量优化的机会。2,作用:作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值.3,使用场景: 优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份 一个中断服务子程序中会访问原创 2014-03-02 14:05:47 · 634 阅读 · 0 评论 -
消息认证码(MAC)的实现原理
一般密码相关的算法,个人是很难实现的,我们可以参照权威机构提供的方案,我想说美国标准与技术研究院 ,NIST(National Institute of Standards and Technology)。今天谈到的MAC,使用NIST提供的公开800-38B算法文档。这个MAC算法是基于对称密钥块算法,故称之为CMAC,还是使用了AES。算法原理:1,根据输入的key,产生两个子ke原创 2014-04-27 20:40:36 · 7942 阅读 · 0 评论