自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

涛2014/8/20的专栏

记录自己解决过的一些问题,一点点积累

  • 博客(17)
  • 问答 (1)
  • 收藏
  • 关注

原创 c语言内存分配

《c语言深度剖析》中关于内存管理部分的测试,可以很好的加深理解。#include#include#includeint main(){char *pstr = NULL;char *pstr2 = NULL;pstr = (char *)malloc(36);strcpy(pstr,"hello world");free(pstr);

2015-11-27 18:02:54 295

原创 c语言递归函数

近期再次阅读《c语言深度剖析》对递归有了更好的的理解。#include#includevoid func(int a){if(a>0)func(a/2);printf("%d \r\n",a);}int my_strlen(char *str){assert(NULL != str);if('\0' == *str)

2015-11-27 17:58:45 510

原创 溢出 隐式转换 负数存储

下面是对《c语言深度剖析》中的几段代码的测试,可以帮助加深理解:#include#includeint main(){/* 255  溢出char a[1000];int i,len;len = 0;for(i = 0;i{a[i] = -1-i;}len = strlen(a);*/// -0 补码 0000 0

2015-11-27 17:50:50 412

原创 c语言返回栈内存的问题

读到林锐的《c语言深度剖析》书中讲return时提到了这个问题,然后好好想了一下,写程序测试,有了进一步的理解。书中是这样说的:return 语句不可返回指向 “栈内存” 的 “指针” 因为该内存在函数体结束时被自动销毁。#includeint fun1(){int a;a = 2;return a;}char *func2(){

2015-11-25 14:21:21 554

原创 c语言有符号数取值范围

c语言中有符号数的取值范围问题:比如char类型 [-128,127],当为正数时 0111 1111(二进制)对应十进制 127,这没有任何问题。但是当为负数时 -128 是怎样得到的呢?最高位为1时候代表负数,我们通常会认为11111111的时候是最小值即-127(当表示原码的时候 最小值-127是对的)其实不是这样的,因为计算机是采用的补码形式,根据补码的规则11111111

2015-11-25 09:27:32 1037

转载 VS2012 error C2143: 语法错误 : 缺少“;”(在“类型”的前面)

原因与解决方案:纯c要求局部变量定义必须在函数或局部空间的开头,然后才能有其他语句。纯c确实对变量声明的位置有要求,c++却可以随用随定义的。 说明vs是严格执行了纯C的标准。变量任意定义是c99的标准

2015-11-25 09:20:22 1965 1

原创 VS2012使用strcpy_s的问题

1>g:\c_test\time\singlepointer\singlepointer\test.c(15): error C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_W

2015-11-25 09:03:54 1576

原创 最近遇到的一个数组越界的BUG

关于二维数组的问题,之前在我代码中有如下这样一段,(//CMD:DS:1234567890abcd:1234567890:5:0016:44:BLE A IM 20:73:6a:18:ec:e8,11:22:33:44:55:66)当解析到 e8,11 时会导致 dest 越界,但是由于我每次 cmd_line ->Cmdpos += 3;,这样刚好解析到的MAC也是对的,所以当时没有发现。c

2015-11-20 18:50:37 623

原创 strlen的使用问题

最近在做项目时,用strlen测试的字符串长度传递到另外一个函数中,结果由于含有'0'导致出错。应该是遇到了我下面的第二种情况,测试代码如下:#include#includeint main(){int len1,len2,len3;char *str = "hello\0world";char str2[] = {'h','e','l','l','o',0,'

2015-11-19 19:02:29 631

原创 c语言关于时间的两个函数

根据日期转换为星期几,以及由天数得到月份,代码如下:#includeint datetoweek(int yr, int mn,int day){int i;int days=0;int s;int week;int mont[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};if((0==yr%4 && 0!=yr

2015-11-19 18:53:46 407

原创 C语言_DATE_ _TIME_ _LINE_ _FILE_的使用

代码如下:

2015-11-19 14:01:15 460

转载 c语言va_list snprintf 的实现

首先列出我自己实际遇到的一个例子:在串口向 PC 发送数据时为了实现可变参数的功能,这是工程中遇到的一段代码:int SerialDbgPrintf(uint8 type, char *fmt, ...){if(type == ATCMD){int cnt;char string[MAX_PRINTF_STR_SIZE] = {'\0'};va_list a

2015-11-19 09:05:33 1696

转载 crc32校验算法

CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。CRC校验实用程序库在数据存储和数据通讯领域,为了保证数据的正确,就不得不采用检错的手段。以下是CRC32的C语言实现,经过测试,能够正确运行:[cpp] view plaincopy

2015-11-18 19:16:45 2443

转载 c语言回调函数

本文转载自 http://www.cnblogs.com/2eggs/archive/2012/11/20/2779567.html1234567891011121314151617181920212

2015-11-18 19:10:02 563

原创 c语言字符串转换为16进制和10进制数字

字符串转换为16进制或者10进制:1、使用自己编写的函数。2、使用库函数。将字符串转换为16进制两种方法的代码:#include#include#include int HexStr2Int(char *buf) {int result = 0;int tmp;int len,i;len = strlen(buf);printf("len

2015-11-18 19:06:04 8575

原创 KEIL编译后Program Size: Code=1032 RO-data=336 RW-data=12 ZI-data=1836 的含义

Code: 程序所占用的FLASH大小,存储在FLASH.RO-data: Read-only-data,程序定义的常量,存储在FLASH中。RW-data:Read-write-data,已经被初始化的变量,存储在SRAM中。ZI-data:Zero-Init-data,未被初始化的变量,存储在SRAM中。

2015-11-14 10:07:21 12410 1

原创 JLINK驱动刷新之WIN7

今天遇到一个问题,我在新的版本KEIL提示我更新JLINK驱动之后,出现JLINK驱动丢失现象,指示灯也不亮了。在网上查了许多资料尝试了好久,最后终于弄好了1、主要问题出现在我执行完各个操作之后,最后在PORT出现了 bossa program com 这样的一个驱动,直接导致我设置好 SAM-PROG2.4之后,write按钮一直显示为灰色。2、然后我禁止了系统自动UPDATE驱动,选择

2015-11-07 22:36:58 9695 2

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除