C
文章平均质量分 88
卡木_
思而致远
展开
-
C语言的memset()函数
C语言memset()函数:将内存的前n个字节设置为特定的值头文件: 1 #include <string.h> memset() 函数用来将指定内存的前n个字节设置为特定的值,其原型为: 1 void * memset( void * ptr, int value, size_t num ); ...转载 2018-01-31 21:30:56 · 480 阅读 · 0 评论 -
回调函数分层编码(基于C语言)
前言:这个回调实例分三层:底层为任务函数实现层;核心层为数据结构和任务注册/注销层;上层为应用层。底层://///////////////////////////task_def.c/////////////////////////////////#include <stdio.h>voidtask1(int x, char y, void * ptr){ ...原创 2019-05-01 16:49:33 · 828 阅读 · 0 评论 -
基于C语言的传输协议封包、发包实现
前言:本实例中以APDU协议为例进行封包和发包(这里的发包以一个报文为单位,在实际工作中应该是以实际带宽决定吧)。#include <stdio.h>#include <string.h>#include <stdlib.h>//SYS#define MTU_DATA 16#define MTU (MTU_DATA + 6)//USER#...原创 2019-05-01 16:53:27 · 3408 阅读 · 0 评论 -
测试代码中的“{}”是否匹配
/*读取代码,判断{}是否匹配*/#include<stdio.h>int main(void){ char ch=0; char count1=0; char count2=0; while( (ch=getchar())!=EOF){ if(ch=='{') count1++; if(ch=='}') count2++; } if( coun...原创 2017-05-12 17:16:36 · 345 阅读 · 0 评论 -
VC中出现“烫烫烫”的原因分析
最近开始重新学习C语言,在VC中练习小程序,在运行时有幸遇见了神秘的“烫烫。。。”如下: 程序很小很简单,自己认为我的逻辑也没错,并且还没有语法错误,可是为什么会这样呢?这一个个烫可是把我的心都烫着了!接下来我们分析分析: 我的程序中字符串数组str1是将经过gets()函数输入,将其复制到str2中。在键盘输入字符串后,VC会自动给str1末尾加‘\0’,而st...原创 2017-05-13 17:32:42 · 13381 阅读 · 4 评论 -
验证处理器的大小端
验证处理器的大小端(1)处理器的大小端大端:按照人们习惯,先在低地址存放0x1234中的高字节0x12,再往上存放0x34(以字节为单位)小端:按照计算机的习惯,先在低地址存放0x1234中的低字节0x34,再往上存放0x12(2)常见架构的大小端更多可见:https://en.wikipedia.org/wiki/Comparison_of_instruction_set_architectur...原创 2018-05-22 17:44:50 · 325 阅读 · 0 评论 -
C之attribute用法
转自:http://www.cnblogs.com/astwish/p/3460618.htmlGNU C 的一大特色就是__attribute__ 机制。__attribute__ 可以设置函数属性(Function Attribute )、变量属性(Variable Attribute )和类型属性(Type Attribute )。__attribute__ 书写特征是:__attribut...转载 2018-05-22 17:19:53 · 495 阅读 · 0 评论 -
指针类型、步长、内存大小
指针类型、步长、内存大小(1)指针的类型分清常量指针和指针常量(2)指针的步长(见第一个测试)和基本类型相同。如:char *p;//步长 = 1byteint *p;// 步长 = 4byte(3)指针的内存大小(见测试及说明)(4)测试平台:Windows VC6.0(32位)平台:Linux(Ubuntu14.04) gcc 4.8.5(...原创 2018-05-11 10:29:19 · 2752 阅读 · 0 评论 -
while(1) 与for(;;) 的区别
在编程中,我们常常需要用到无限循环,常用的两种方法是while (1) 和 for (;;)。这两种方法效果完全一样,但那一种更好呢?然我们看看它们编译后的代码:编译前:while (1);编译后:mov eax,1test eax,eaxje foo+23hjmp foo+18h编译前:for (;;);编译后:jmp foo+23h显然,...原创 2018-05-10 21:40:38 · 690 阅读 · 0 评论 -
断言函数assert()
描述:断言 assert 是仅在 Debug 版本起作用的宏,它用于检查“不应该”发生的情况。C 库宏 void assert(int expression) 允许诊断信息被写入到标准错误文件中。换句话说,它可用于在 C 程序中添加诊断。声明:下面是 assert() 宏的声明。[cpp] view plain copy转载 2018-01-31 21:39:51 · 646 阅读 · 0 评论 -
基于动态库的C语言环境配置方法(配合shell使用更佳)
背景:前几天接到一个需求:在Linux下基于openssl的SM2算法实现对SE芯片签名的验签,并制作Linux版验签工具。暂且不论SM2 Verify算法及其过程,要实现验签得有sign、pubkey、userid、msg等吧,这些data必须动态加载才能满足客户需求,最常见的方法是使用文件I/O的方式,读取参数,但是这样做,你不仅要使用文件I/O,还要解析参数,会增加代码的复...原创 2019-06-01 13:10:30 · 319 阅读 · 0 评论