随笔分类 -  C & C++

深入学习,温故知新
摘要:怪事年年有,最近特别多。 先吐为快,不然我怕自己会发狂..... 1.浮点数(float)存储然后读出会有精度损失,所以... 设备需要新的功能:将一些重要的数据写入到设备的EEPROM中,设备上电后从EEPROM中再读出数据。功能简单,需求明确。OK,so easy,可是下面的要求让我无法淡定了“ 阅读全文
posted @ 2021-04-19 18:36 Waming 阅读(75) 评论(0) 推荐(0)
摘要:.ini 文件格式如下: [section1] key1=value ... keyn=value [section2] key1=value ... keyn=value 代码如下: 在 writeIntValue() 函数中 sprintf(strValue, "%-4d", val); 做了对 阅读全文
posted @ 2018-06-25 17:18 Waming 阅读(13141) 评论(0) 推荐(0)
摘要:注:该文主要来源于 网易公开课之《C++ 程序设计入门(上)》课件。 在 C 语言标准中,const 修饰的变量称之为 只读变量, 在 C++ 语言标准中,const 修饰的变量称之为 常量, 例: const int ARRAY_LEN = 100; int array[ARRAY_LEN]; / 阅读全文
posted @ 2018-03-30 15:04 Waming 阅读(263) 评论(0) 推荐(0)
摘要:在调试嵌入式程序时经常会遇到程序"莫名其妙"的跑飞,而这类问题一般仿真是不容易找到问题源的。今天灵光一闪,我想到了一个方法可以帮助我们定位问题源,而在实际的使用后,发现这个方法的确可行,也帮助我解决了问题。 先总结一下造成嵌入式程序跑飞的原因: 1. 内存操作错误,如alloc/memset/mem 阅读全文
posted @ 2017-03-27 20:51 Waming 阅读(2272) 评论(0) 推荐(0)
摘要:1. 判断一个正整数是否为2的乘方数 数据对比(uint_16 n;) n n 的二进制表示 (n - 1) (n-1) 的二进制表示 n&(n - 1) 2 0000000000000010b 1 0000000000000001b 0000000000000000b 4 000000000000 阅读全文
posted @ 2017-01-13 16:50 Waming 阅读(400) 评论(0) 推荐(0)
摘要:今天移植代码时遇到一个比较奇葩的问题,记录如下: Error[Li006]: duplicate definitions for "Uart3"; in "E:\IAR_1768Pro_PCB799\Debug\Obj\Uart3_init.o", and "E:\IAR_1768Pro_PCB79 阅读全文
posted @ 2016-05-13 18:30 Waming 阅读(2279) 评论(0) 推荐(0)
摘要:在C 编程的过程中,我们很多时候都会用到循环,但有时需要中途跳出整个循环,或跳过某一次循环,这时就需要用到break或continue,关于二者的使用很多书籍和博文都有很相近的说明,此处不做任何讲解,只是记录一种更好理解二者区别的方法。 1.while 循环while(expression) ... 阅读全文
posted @ 2015-12-17 17:54 Waming 阅读(315) 评论(0) 推荐(0)
摘要:在程序的设计中,都会涉及都堆栈的使用,其实堆栈是指堆和栈,它们是两个不同的概念,其中堆是通过用户来调用的内存空间,需要用户主动分配和释放,如果只分配而不即使释放,则可能出现内存泄漏的问题,其结果的难以估量的;栈是系统自动调用的内存空间,系统也会根据实际情况自动去释放该空间。 在平时的使用当中,... 阅读全文
posted @ 2015-11-02 10:46 Waming 阅读(1765) 评论(0) 推荐(0)
摘要:对于 IAR 出现的 Error[Li005] 链接错误,网上已经给出了比较详尽的解决方法,而对于这次记录,主要是记录解决问题的思路。 网上给出的方法:http://blog.csdn.net/yueniaoshi/article/details/7844653问题的本质都是一样的,这在问题给出的... 阅读全文
posted @ 2015-09-06 16:25 Waming 阅读(21524) 评论(0) 推荐(0)
摘要:斐波那契数列,又称黄金数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(1)=1,F(2)=1,F(n)=F(n-1)+F(n-2)(n>2,n∈N*)。第一种实现方法可以通过其定义得知:递归int Fib2(int num){... 阅读全文
posted @ 2015-05-28 10:24 Waming 阅读(578) 评论(0) 推荐(0)
摘要:今天重新温习了一下C语言的指针部分,突然想到了经常会碰见的一种宏定义:#define PGAS (*((volatile unsinged long *)(x))) 在解析该宏定义前,先看看指针变量的声明 声明一个int类型的指针变量:int* p; 仅仅是这样定义,这个指针是不能够直... 阅读全文
posted @ 2015-04-19 00:48 Waming 阅读(7568) 评论(1) 推荐(0)
摘要:在平时的编程中,我们会经常用到数组,并且需要知道数组的长度,有时我们可以明确的知道数组的长度,但有时并不,这时,可以借用sizeof(),来获得数组的长度,如下:arrayLength = sizeof(array) / sizeof(array[0]);在使用sizeof() 获得数组长度时,... 阅读全文
posted @ 2015-03-06 00:01 Waming 阅读(2885) 评论(0) 推荐(0)
摘要:合并排序算法在结构上是递归的,采用分治策略:就是将原有的问题划分为 n 个规模较小但结构与原问题相似的子问题,递归地解决这些子问题,然后合并其结果,就得到原问题的解。 合并排序的模式一般如下: 1.分解:将 n 个元素分解为各含 n/2 个元素的两个序列; 2.解决:用分治排序法对两个子序... 阅读全文
posted @ 2014-11-25 17:43 Waming 阅读(610) 评论(0) 推荐(0)
摘要:有两个变量 a 和 b ,交换这两个变量的值方法一 使用中间变量void swap(int *a, int *b){ int temp = 0; temp = *a; *a = *b; *b = temp; }方法二 不适用任何中间变量 ① 异或运算法void swap... 阅读全文
posted @ 2014-10-26 11:35 Waming 阅读(354) 评论(0) 推荐(0)
摘要:近期正在看《C语言深度剖析》,里面有一个讲解自加运算符(++),有一程序如下:void main(){ int i; for(i=0, printf("First i = %d\t",i); i<10, printf("Second i = %d\t",i); i++,printf("Third i = %d\t",i)) { printf("Fourth = %d\n",i); }system("pause");}Ctrl+F5后,程序会无限循环,个人理解如下:上述for循环语句的判断部 阅读全文
posted @ 2012-03-01 09:19 Waming 阅读(1140) 评论(3) 推荐(1)