C/C++
文章平均质量分 64
zzwdkxx
这个作者很懒,什么都没留下…
展开
-
void main()还是int main()
最近在论坛上看到有不少网友的程序中,main函数都写成void main(),而不是int main()。那么,到底哪个是正确的,或至少是推荐使用的呢?这篇文章本来是自己想写的,但有些概念不是很清楚,于是在网上搜索了一下,发现了moon网友的一篇非常好的文章,对很多模糊不清的概念都讲解的非常清楚,值得学习和借鉴,特转载过来,一起学习。全文如下: main函数的返回值大家注意了吗,也许有人转载 2012-12-16 16:44:28 · 1475 阅读 · 0 评论 -
C语言运算符优先级
同一优先级的运算符,运算次序由结合方向所决定。简单记就是:单目>双目>三目>赋值>逗号其中双目运算符中:算术运算符 >移位运算符> 关系运算符(其中==和!=又较低)> && > || > 赋值运算符优先级运算符名称或含义使用形式结合方向说明1转载 2012-12-30 17:03:07 · 484 阅读 · 0 评论 -
条件编译的用法
看正点原子的stm32串口初始化程序,usart.h文件里如下:#ifndef __USART_H#define __USART_H#include #include "stdio.h" extern u8 USART_RX_BUF[64]; //接收缓冲,最大63个字节.末字节为换行符 extern u8 USART_RX_STA; //接收原创 2013-01-08 20:45:14 · 4661 阅读 · 0 评论 -
按键扫描处理
按键处理 单片机书本上对于键盘处理往往都给出了几种不同的方案,但是在一个实际的系统应用中,往往用起来感觉不是很好。主要的弊端就是实时性不好。无论是采用中断方式还是采用扫描方式,实行性都不能很好的达到要求。 对于键盘,大家都知道有抖动,最最常用的消除抖动的方法就是用软件消抖。但是书本上的软件消抖基本都是用一个Delay函数来实现10-20ms的延时。而一个前后台的系统,也许转载 2013-01-16 11:47:25 · 1781 阅读 · 0 评论 -
新型的按键扫描程序(备用)
转自:http://www.amobbs.com/thread-4308630-1-1.html另一篇同种思想的博客:键盘扫描方法http://home.eeworld.com.cn/my/space.php?uid=302692&do=blog&id=42048 不过我在网上游逛了很久,也看过不少源程序了,没有发现这种按键处理办法的踪迹,所以,我将他共享出来,和广大同僚们共勉。我非转载 2013-01-16 11:29:43 · 1522 阅读 · 0 评论 -
typedef和define的区别
一、typedef用来声明自定义数据类型1.typedef是C语言语句,其功能是用户为已有数据类型取“别名”。 例如: typedef int INTEGER; 这以后就可用INTEGER来代替int作整型变量的类型说明了,如: INTEGER a,b; 2.用typedef定义数组、指针、结构等类型将带来很大的方便,不仅使程序书写简单而且使转载 2013-03-05 16:28:03 · 831 阅读 · 0 评论 -
程序编译后FLASH和SRAM大小的计算
转载 2013-02-28 16:24:03 · 2034 阅读 · 0 评论 -
sizeof用法分析
http://blog.csdn.net/wangg0717/article/details/48184161、什么是sizeof 首先看一下sizeof在msdn上的定义: The sizeof keyword gives the amount of storage, in bytes, associated with a variable or a type转载 2013-03-20 20:19:19 · 653 阅读 · 0 评论 -
win7下VC6.0打开添加无法使用的解决办法 及 Win7下安装VC6.0的完美解决方案
转自:http://www.win7soft.com/a/learning/software/2010/0721/2409.html 1.下载微软发布的补丁,filetool filetool.rar (35.23 KB) ,不过是以未编译工程的形式发布的.解压出来,记住路径 2.找到目录,双击 filetool.dsw运行,(用VC转载 2013-03-21 15:37:31 · 1559 阅读 · 0 评论 -
深入理解sizeof
转自:http://www.vckbase.com/index.php/wv/789最近在论坛里总有人问关于sizeof的问题,并且本人对这个问题也一直没有得到很好的解决,索性今天对它来个较为详细的总结,同时结合strlen进行比较,如果能对大家有点点帮助,这是我最大的欣慰了。一、好首先看看sizeof和strlen在MSDN上的定义:首先看一MSDN上如何对sizeof进行定义的转载 2013-04-06 17:01:57 · 857 阅读 · 0 评论 -
static全局变量与普通的全局变量、static局部变量和普通局部变量、static函数与普通函数的区别
全局变量(外部变量)的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。静态的全局变量即全局变量(外部变量)的说明之前冠以static。静态全局变量则限制了作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用, 因此可以避免在其它源文件中引起原创 2013-03-23 16:14:38 · 610 阅读 · 0 评论 -
指针函数与函数指针的区别
from:http://www.cnblogs.com/gmh915/archive/2010/06/11/1756067.html一、在学习arm过程中发现这“指针函数”与“函数指针”容易搞错,所以今天,我自己想一次把它搞清楚,找了一些资料,首先它们之间的定义:1、指针函数是指带指针的函数,即本质是一个函数,函数返回类型是某一类型的指针。类型标识符 *函数名(参数表)int转载 2013-04-18 16:11:35 · 1143 阅读 · 1 评论 -
枚举类型的定义
在程序设计中,有时会用到由若干个有限数据元素组成的集合,如一周内的星期一到星期日七个数据元素组成的集合,由三种颜色红、黄、绿组成的集合,一个工作班组内十个职工组成的集合等等,程序中某个变量取值仅限于集合中的元素。此时,可将这些数据集合定义为枚举类型。因此,枚举类型是某类数据可能取值的集合,如一周内星期可能取值的集合为: { Sun,Mon,Tue,Wed,Thu,Fri,Sat} 该集转载 2013-04-18 10:43:17 · 774 阅读 · 0 评论 -
不用中间变量而互换两个变量的值
1、异或运算int a,b;a=10;b=1;a=a^b;b=a^b;a=a^b;结果:a=1;b=10;^是异或运算;2、加减运算int a=10,b=20;a=a+b;b=a-b;a=a-b;结果:a=20;b=10;原创 2013-04-18 15:19:06 · 674 阅读 · 0 评论 -
printf和scanf
printf函数的一般形式为: printf(“格式控制字符串”,输出表列);//注意如果输出是字符串,输出列表是字符串首地址scanf函数的一般形式为: scanf(“格式控制字符串”,地址表列); void main(){ int a; int b[10]="1234567890"; printf("Please input a原创 2013-05-05 11:33:56 · 786 阅读 · 0 评论 -
深入了解scanf()、getchar()和gets()等函数
问题描述一:(分析scanf()和gets()读取字符) |---------------------------------------------------- scanf(), getchar()等都是标准输入函数,一般人都会觉得这几个函数非常简单,没什么特殊的。但是有时候却就是因为使用这些函数出了问题,却找不出其中的原因。下面先看一个很简单的程序:程序1:转载 2013-04-30 15:40:13 · 866 阅读 · 0 评论 -
C语言指针的初始化和赋值
转自:http://blog.csdn.net/snowq/article/details/2050129 最近写了一个小程序,遇到一点小问题,是关于指向字符串的指针的。由此一发不可收拾,好奇心驱使我决定研究一下指针的初始化和赋值规则。略有所得之后,执笔记下,以备后用。1、指针的初始化 初看起来,指针的初始化和赋值好像很混乱,又是*,又是&,时不时又出来一个转载 2013-05-05 22:04:04 · 972 阅读 · 0 评论 -
循环冗余检验 (CRC) 算法原理
http://www.cnblogs.com/esestt/archive/2007/08/09/848856.htmlhttp://www.cnblogs.com/sujz/archive/2011/05/19/2051470.htmlhttp://baike.baidu.com/view/3385584.htm模2除法http://wenku.baidu.com/view/转载 2013-05-20 10:40:46 · 724 阅读 · 0 评论 -
assert()函数用法总结
转自:http://www.cnblogs.com/ggzss/archive/2011/08/18/2145017.htmlassert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include void assert( int expression ); assert的作用是现计算表达式 expression ,如果其值为假(即为0),那转载 2013-05-07 16:32:00 · 570 阅读 · 0 评论 -
递归算法详细分析-> C
转自:http://www.cnblogs.com/zhangqqqf/archive/2008/09/12/1289730.htmlC通过运行时堆栈支持递归函数的实现。递归函数就是直接或间接调用自身的函数。许多教科书都把计算机阶乘和菲波那契数列用来说明递归,非常不幸我们可爱的著名的老潭老师的《C语言程序设计》一书中就是从阶乘的计算开始的函数递归。导致读过这本经书的同学们,看到阶乘计算第一转载 2013-05-09 09:39:16 · 588 阅读 · 0 评论 -
Base64 加解密
1. 举一个具体的实例,演示英语单词Man如何转成Base64编码。Text contentManASCII7797110Bit pattern01001101011000转载 2013-05-27 10:36:22 · 900 阅读 · 0 评论 -
const char *p与char * const p的区别
#include int main (){ const char *p="xxx"; p="yyy"; printf("%s",p); getchar(); return 0;}输出:yyy const char *p;意思是p指向的目标空间的内容不可变化.例如定义char c='A'; p=&c;则c的内容不可以变化.如c='B';等一些企图改变变量c的值原创 2013-05-30 10:33:58 · 873 阅读 · 0 评论 -
将一个十六进制字符串转换为十进制数值的问题
//将1个字符转换为16进制数字//chr:字符,0~9/A~F/a~F//返回值:chr对应的16进制数值u8 chr2hex(u8 chr){ if(chr>='0'&&chr<='9')return chr-'0'; if(chr>='A'&&chr<='F')return (chr-'A'+10); if(chr>='a'&&chr<='f')return (chr-'a'+转载 2013-05-31 10:29:51 · 3359 阅读 · 0 评论 -
const int *p和int * const p的区别(常量指针与指向常量的指针)
转自:http://www.cnblogs.com/xwdreamer/archive/2012/04/12/2444494.html对于指针和常量,有以下三种形式都是正确的:const char * myPtr = &char_A;//指向常量的指针char * const myPtr = &char_A;//常量指针const char * const myPtr = &cha转载 2013-06-24 17:14:48 · 895 阅读 · 0 评论 -
break、continue和return的用法(附:2IO口控制4按键程序)
break语句:break语句会使运行的程序立刻退出包含在最内层的循环或者退出一个switch语句(注意:多层循环只向外跳一层)。由于它是用来退出循环或者switch语句,所以只有当它出现在这些语句时,这种形式的break语句才是合法的。注意:break语句不能用于循环语句和switch语句之外的任何其他语句中。比如:unsigned char i, j=50;fo原创 2012-12-16 17:04:57 · 2154 阅读 · 0 评论 -
C语言程序的内存布局
转自:http://www.cnblogs.com/yezhenhan/archive/2011/10/28/2228083.html一:C语言程序的存储区域C语言编写的程序经过编绎-链接后,将形成一个统一的文件,它由几个部分组成,在程序运行时又会产生几个其他部分,各个部分代表了不同的存储区域:1.代码段(Code or Text):代码段由程序中的机器码组成。在C语言中,程序语句转载 2013-07-20 20:26:26 · 704 阅读 · 0 评论 -
指针函数和函数指针
1.指针函数与函数指针的定义 指针函数即返回指针的函数。其一般定义形式如下:类型名 *函数名(函数参数表列);其示例如下: int *pfun(int, int); //指针函数:本身是一个函数,函数返回值是一个指针由于“*”的优先级低于“()”的优先级,因而pfun首先和后面的“()”结合,也就意味着,pfun是一个函数。即原创 2013-07-22 22:42:43 · 653 阅读 · 0 评论 -
指针数组和数组指针
指针数组:array of pointers,即用于存储指针的数组,也就是数组元素都是指针数组指针:a pointer to an array,即指向数组的指针还要注意的是他们用法的区别,下面举例说明。int* a[4] 指针数组 表示:数组a中的元素都为int型指针 元素表示:*a[i] *(a[i])是一样的,因为[]优先级高于*int (*a)[4] 数组指针 表原创 2013-07-23 13:43:16 · 651 阅读 · 0 评论 -
new/delete 和malloc/free 的区别
一、基本概念 malloc/free:1、函数原型及说明:void *malloc(long NumBytes):该函数分配了NumBytes个字节,并返回了指向这块内存的指针。如果分配失败,则返回一个空指针(NULL)。void free(void *FirstByte): 该函数是将之前用malloc分配的空间还给程序或者是操作系统,也就是释放了这块内存,让转载 2013-03-24 16:07:55 · 625 阅读 · 0 评论 -
输入两个字符串,比如abdbcc和abc,输出第二个字符串在第一个字符串中的连接次序(递归方法)
//************************************************************************//功能:输入两个字符串,比如abdbcc和abc,输出第二个字符串在第一个字符串中的连接次序。即输出125、126、145、146.//参数:fir_str,第一个字符串; // sec_str,第二个字符串; //原创 2013-07-26 17:02:25 · 7335 阅读 · 0 评论 -
求一个字符串中连续出现次数最多的子串
http://blog.csdn.net/imcdragon/article/details/6838565http://xiaozu.renren.com/xiaozu/186996/335212029http://blog.csdn.net/juiceda/article/details/7796865http://blog.csdn.net/huangkangying/art转载 2013-08-03 15:33:48 · 684 阅读 · 0 评论 -
sscanf()函数用法
转自:http://hi.baidu.com/pursuitofacm/item/d1e5ecfe93055804ff358230相关函数 scanf,fscanf表头文件: #include 定义函数: int sscanf (const char *str, const char * format,........);函数说明:sscanf()会将参数str的字符串根据参数转载 2013-08-06 10:37:54 · 821 阅读 · 0 评论 -
2013华为机试题
转自:http://blog.chinaunix.net/uid-26868581-id-3334342.html/*题目描述(60分):通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。比如字符串“abacacde”过滤结果为“abcde”。要求实现函数:转载 2013-08-06 10:59:43 · 678 阅读 · 0 评论 -
堆与栈的区别
在进行C/C++编程时需要程序员对内存的了解比较精确,经常使用到的内存有以下几种: 栈:由编译器自动分配和释放,存放函数的参数值、局部变量的值,操作方式类似于数据结构中的栈。(函数体中定义的变量通常是在栈上) 堆:一般由程序员分配和释放,与数据结构中的堆是两码事,操作方式类似于链表。(用malloc、calloc、realloc等分配得到的在堆上)原创 2013-08-20 08:59:49 · 725 阅读 · 0 评论 -
字符串四则运算表达式的计算(华为机试)
http://blog.csdn.net/sicofield/article/details/8907787转载 2013-08-07 16:46:26 · 908 阅读 · 0 评论 -
例说实参形参的区别--3
转自:http://www.cnblogs.com/iuices/archive/2011/11/03/2234877.html 指针是C系语言的特色。指针是C++提供的一种颇具特色的数据类型,允许直接获取和操纵数据地址,实现动态存储分配。 指针问题,包括常量指针、数组指针、函数指针、this指针、指针传值、指向指针的指针等,这些问题也是各大公司常备考点,下面让转载 2013-08-20 21:18:37 · 844 阅读 · 0 评论 -
例说实参形参的区别--2
转自:http://see.xidian.edu.cn/cpp/biancheng/view/161.html加上了自己的理解下面先对“&”和“*”运算符再做些说明: 如果已执行了“pointer_1=&a;”语句,请问&*pointer_1的含义是什么?“&”和“*”两个运算符的优先级别相同,但按自右至左方向结合,因此先进行*pointer_1的运算,它就是变量a,再执行&运算。因此原创 2013-08-20 21:12:37 · 852 阅读 · 0 评论 -
浅析动态内存分配及Malloc/free的实现
转自:http://linux.chinaunix.net/techdoc/system/2009/02/06/1060822.shtml一、概述: 动态内存分配,特别是开发者经常接触的Malloc/Free接口的实现,对许多开发者来说,是一个永远的话题,而且有时候也是一个比较迷惑的问题,本文根据自己的理解,尝试简单的探究一下在嵌入式系统中,两类典型系统中动态内存分配以及M转载 2013-09-05 23:09:43 · 1001 阅读 · 0 评论 -
char *p="abc" 与 char p[]="abc" 的区别
有这样一段代码:#include "stdio.h"char *get_string_1(){ char p[] = "hello world!"; return p;}char *get_string_2(){ char *p = "hello world!"; return p;}int main(){ char *p; p原创 2013-07-20 21:26:43 · 10222 阅读 · 5 评论 -
出错处理
http://wenku.baidu.com/view/37cf317d27284b73f24250e3.html转载 2013-09-24 11:38:29 · 666 阅读 · 0 评论