C语言
文章平均质量分 91
PillarPeng
喜欢这个专业
展开
-
【C语言】[变量]:变量在内存的存储位置
一、内存区域介绍: 一个由c/C++编译的程序占用的内存分为以下几个部分:1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。3、全局区(静态区)(static)— 全局变量和静态变量的存转载 2015-07-13 17:31:52 · 2937 阅读 · 0 评论 -
【C语言】[sizeof+指针]-int a[2][3],sizeof(a)与sizeof(a[0])
同一个地址,可以被不同类型的指针所指向,并且指向该地址的不同类型的指针所代表的意义也是不一样的。原创 2017-01-14 10:35:52 · 5287 阅读 · 1 评论 -
【按键】[独立按键] - 2:双击
二、[双击]程序 1.双击介绍双击的判定 在完成第一次【单击】之后,在一定的时间间隔内(本程序使用的是300ms),接着完成第二次【单击】,及判定为【双击】。双击的响应 1)在预设的时间间隔内完成第二次【单击】,按键释放后,响应返回有效键值【双击】。 2)如果第二次按下键并一直按住,当按住的时间超过设定的时间间隔(300ms)后,会响应第一个【单击】,并返回有效键值【单击】。 注:【单原创 2016-03-29 10:28:55 · 13307 阅读 · 14 评论 -
【按键】[独立按键] - 3:三击 以及 N击
三、 [三击]程序1.三击介绍三击判定:在完成第一次【单击】之后,在一定的时间间隔内(本程序使用的是300ms),接着完成第二次【单击】,时间间隔重新计时,然后又在这个时间间隔内,完成第三次【单击】,及判定为【三击】。 注:【单击】是包括按下和释放按键的过程,判定方式沿用上文所说的,如果忘了,可以参考上文。三击响应时序图 注: T1:是单击判定的时间,范围:30ms < T1原创 2016-03-30 14:07:57 · 7847 阅读 · 9 评论 -
【按键】短按,长按,按键释放,三种模式的按键扫描程序(软件消抖动)--- 矩阵键盘
请先阅读上篇: 短按,长按,按键释放,三种模式的按键扫描程序(软件消抖动)上面的程序适用于单个按键,那是不是也可以适用于矩阵键盘呢? 答案是肯定的。接下来在这里做一个简单的扩展,具体框架不用改变,所以具体的框架内容和思路在这里不详述了,自行参考上篇文章,这里就说说扩展矩阵键盘的需要改动的地方。重点: 对于此按键盘函数的框架来说,其实单个按键与矩阵键盘程序的差别仅仅在于读取按键的方式不同。所以这原创 2016-02-26 11:50:01 · 22399 阅读 · 3 评论 -
【C语言】[其他]:输出完整的ASCII码(0~127+128~255)
我以前来时xia一般只能输出0-127个ASCII码的字符,但是有的需要原创 2014-05-27 16:20:25 · 24938 阅读 · 5 评论 -
【C语言】[指针]:指针函数 和 函数指针
一、在学习arm过程中发现这“指针函数”与“函数指针”容易搞错,所以今天,我自己想一次把它搞清楚,找了一些资料,首先它们之间的定义:1、指针函数是指带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针 类型标识符 *函数名(参数表) int *f(x,y); 首先它是一个函数,只不过这个函数的返回值是一个地址值。函转载 2014-09-09 11:28:50 · 750 阅读 · 0 评论 -
【C语言】[其他]:C语言的 __attribute__ 用法
__attribute__((at(0X68000000)))这里其实就是要搞懂2个C语言关键字就可以了. 首先,__attribute__,这个是 用来指定变量或结构位域的特殊属性,该关键字后的双括弧中的内容是属性说明。 然后是at关键字,该关键字可以用来设置变量的绝对地址,也就是你可以通过这个关键字,指定某个变量处于内存里面的某个给定的地址. 综合起转载 2014-11-03 16:56:00 · 3052 阅读 · 0 评论 -
【C语言】[其他]:用C语言表示数学常数e
e,作为数学常数,是自然对数函数的底数。有时称它为欧拉数(Euler number),以瑞士数学家欧拉命名;也有个较鲜见的名字纳皮尔常数,以纪念苏格兰数学家约翰·纳皮尔 (John Napier)引进对数。它就像圆周率π和虚数单位i,e是数学中最重要的常数之一。它的其中一个定义是,其数值约为(小数点后100位):“e ≈ 2.71828 18284 59045 2353转载 2014-11-27 16:18:14 · 22405 阅读 · 0 评论 -
【C语言】[库函数]:printf 函数 和 scanf 函数 对float 和double 类型打印和读取
1 printf输出float和double都可以用%f,double还可以用%lf。2 scanf输入float用%f,double输入用%lf,不能混用。转载于:http://zhidao.baidu.com/link?url=VszF94YCNvo6tXoPVvRw8uxvrcYQp2veSE9CzMrQWCWG9_I_rl6liP18IXoT3i8-80ei5a53V2AKRO7转载 2014-12-22 16:01:21 · 1413 阅读 · 0 评论 -
【C语言】[笔试题]:常见笔试题
1.关键字 static 的作用 答: (1)设置变量的存储域,函数体内static变量的作用范围为该函数体,不同于auto变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值; (2)限制变量的作用域,在模块内的static全局变量可以被模块内所用函数访问,但不能被模块外其它函数访问; (3)限制函数的作用域,在模块内的static函数只可被这一模块内的其它函数调用,这个函数转载 2015-04-10 15:43:36 · 2564 阅读 · 0 评论 -
【C语言】[其他]:宏定义swap(x,y)
1) #define swap(x,y) (x^=y,y^=x,x^=y)2) #define swap(x,y) ((x)=(x)+(y),(y)=(x)-(y),(x)=(x)-(y))转载:http://blog.csdn.net/wpc320/article/details/3030824转载 2015-04-03 10:16:41 · 1699 阅读 · 0 评论 -
【C语言】[其他]:函数判断大端模式还是小端模式
利用大小端·模式数据存放的顺序不同以及联合体的特殊内存分配来实现。判断函数如下:void JudgeEndianness(void) { union { int x; char x0; }u={.x=0x11223344}; //初始化联合体中的成员整形数据x if(u.x0 == 0x11) printf("小端模式");原创 2015-04-01 19:28:15 · 1615 阅读 · 0 评论 -
【C语言】[其他] :code, data, idata, xdata, bdata, edata, hdata等,代表的意思
从数据存储类型来说,8051系列有片内、片外程序存储器,片内、片外数据存储器,片内程序存储器还分直接寻址区和间接寻址类型,分别对应code、data、xdata、idata以及根据51系列特点而设定的pdata类型,使用不同的存储器,将使程序执行效率不同,在编写C51程序时,最好指定变量的存储类型,这样将有利于提高程序执行效率(此问题将在后面专门讲述)。与ANSI-C稍有不同,它只分SAMLL、C转载 2015-02-26 13:28:09 · 7105 阅读 · 0 评论 -
【C语言】[文件]:文件读写相关
1.fopen()函数原型:FILE * fopen(const char * path,const char * mode);返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno中。 一般而言,打开文件后会做一些文件读取或写入的动作,若打开文件失败,接下来的读写动作也无法顺利进行,所以一般在fopen()后作错误判断及处理。参数说转载 2015-05-05 17:05:16 · 689 阅读 · 0 评论 -
【按键】[独立按键] - 1: 单击,双击,三击以及N击
下面这段是引言,和按键程序实质内容没有任何关系,可以当P话,可直接跳到分割线之后的正文部分。最近自己在琢磨按键程序,之前弄了,按键单击程序,程序可以实现读取按键的几个状态,然后根据需求使用。单击按键的几个状态如下:单击后,马上返回按键值单击后,释放之后,返回按键值单击后,按住不放,多次返回按键值但是在其上面扩展双击和三击以及多击程序时,遇到了麻烦(其实就是不会啦),于是在网上看了某个老师的经原创 2016-03-23 18:03:59 · 19249 阅读 · 13 评论