-
第一招:以空间换时间
计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题,我们就有了解决问题的第1招--以空间换时间。比如说字符串的赋值:...
-
理解一:挂起是一种主动行为,因此恢复也应该要主动完成,而阻塞则是一种被动行为,是在等待事件或资源时任务的表现,你不知道他什么时候被阻塞(pend),也就不能确切的知道他什么时候恢复...
-
1.首先我们先看看IAR自带的"if"和"for"模板,点击菜单栏Edit->Code Templates->Insert Templates,然后选择如下图所示:
...
-
目前单片机有多种C编译器,不同编译器之间有很多区别。总结后,主要有以下几点,需要弄清楚:
1.寄存器的定义
不少编译器已经自带了寄存器的定义文件,比如AT89S52, 使用KE...
-
今天调试时遇到了这个问题,以前都不注意这些警告错误,现在看来争取要做到:0错误,0警告。
中断中和中断外都调用了同一个串口打印函数,一直有上述的报警,没在意,今天调试时发现串口打...
-
优化级别说明(仅供参考):
则其中的 Code Optimization 栏就是用来设置C51的优化级别。共有9个优化级别(书上这么写的),高优化级别中包含了前面所...
-
今天调试时遇到了这个问题,以前都不注意这些警告错误,现在看来争取要做到:0错误,0警告。
中断中和中断外都调用了同一个串口打印函数,一直有上述的报警,没在意,今天调试时发现串口打...
-
本文讲述了将ANSIC程序移植到KeilC51上应该注意的事项。文章讲述了存储类型、指针类型、重入函数、根据目标系统RAM的分布的段定位和仿真栈设置、函数指针、NULL指针问题、字...
-
笔记:
(1)如何禁止KEIL初始化RAM为零?
1. 在KEIL Noinit 打钩
2.
<1> 另须对需要热启动保持的变量用__at...
-
引起我注意Keil c函数参数传递的是在一个偶然的机会,我在写一个函数的时候:如下write_byte(ulong addr, uchar dat){ &nb...
-
在C/C++中经常需要进行存储器的操作,关于数据如何在存储器中存储的问题也是非常重要的,如何在保证数据量(信息量)的同时又保证数据的存储量最小,乍一听感觉没什么好讨论的。但是作为学...
-
最近的一系列的公司笔试,也来不及总结一下,虽然都是一些小公司但是还是有很多值得总结的内容。很多的内容都是自己没有认真看书导致的,主要的问题就是格式控制、转义字符串等问题,说实在的都...
-
这几天看到好友的文章关于while(1)和for(;;)效率的讨论,手痒说了两句。回头一寻思,自己也只是推断。没有做任何实验,我们就看看这两种写法到底有什么区别:
实...
-
最近,在写程序的时候,碰到一个在自己看来非常不可思议的问题。当然,或者高手就觉得大惊少怪了,呵呵。
以下是问题相关:
平台:MEGA64;
编译环境:codeVi...
-
一:C语言程序的存储区域 由C语言代码(文本文件)形成可执行程序(二进制文件),需要经过编译-汇编-连接三个阶段。编译过程把C语言文本文件生成汇编程序,汇编过程把汇...
-
在C++中复制控制是一个比较重要的话题,主要包括复制构造函数、重载赋值操作符、析构函数这三部分,这三个函数是一致的,如果需要手动定义了其中了一个,那么另外的两个也需要定义,通常在存...
-
一、static在C语言里面可以用来修饰变量,也可以用来修饰函数。
1、 先看用来修饰变量的时候。变量在C语言里面可分为存在全局数据区、栈和堆里。
...
-
C++中函数的参数相比C语言中的函数参数要复杂的多,其中主要的原因是C++中引入了引用以及const限定符。这两个对象的引入,使得C++中的函数参数变得异常的复杂多变,每一种类型都...
-
单链表整表创建的算法思路:
声明一结点p和计数器变量i;
初始化一空链表L;
让L的头结点的指针指向NULL,即建立一个带头结点的单链表;
循环:
生成一新结点賦值给...
-
下面是一些比较重要的算法,原文罗列了32个,但我觉得有很多是数论里的或是比较生僻的,和计算机的不相干,所以没有选取。下面的这些,有的我们经常在用,有的基本不用。有的很常见,有的很偏...