随笔分类 -  c

摘要:ARM有16个32位的寄存器(r0到r15)。r15充当程序寄存器PC,r14(link register)存储子程序的返回地址,r13存储的是堆栈地址。ARM有一个当前程序状态寄存器:CPSR。一些寄存器(r13,r14)在异常发生时会产生新的instances,比如IRQ处理器模式,这时处理器使用r13_irq和r14_irqARM的子程序调用是很快的,因为子程序的返回地址不需要存放在堆栈中。1、 ARM处理器共有37个寄存器,其中包括:i. 31个通用寄存器,包括程序计数器(PC)在内。都是32位寄存器ii. 6个状态寄存器,都是32位寄存器,但目前只使用了其中12位2、 ARM处理器有 阅读全文
posted @ 2013-11-07 16:27 Salesforce 阅读(475) 评论(0) 推荐(0)
摘要:NV (NOT-VOLATILE),即非易失性,断电不会丢失的存储信息,包括生产信息、客户信息、产品信息等等。它们都保存在不同(FLASH)分区,并根据不同的分区提供不同的接口、数据结构和管理机制。EFS(Embedded File System)提供了对NOR+SRAM方案的NVITEM和NV分区的管理,并为上层应用提供了访问NVITEM的接口 阅读全文
posted @ 2013-08-13 10:12 Salesforce 阅读(332) 评论(0) 推荐(0)
摘要:指针(详解)本人觉得写的很不错,所以拿出来分享!转自CSDN[转]这篇文章摘自网易广州社区的C语言版精华区。文章不错,不敢独享!作者girlrong是以前C语言版版主,她乐于助人,虚心诚恳,颇受网友欢迎。只可惜现在已退隐江湖了。 第一章。指针的概念 指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让我们分别说明。 先声明几个指针放着做例子: 例一: (1)int *ptr; (2)char *ptr; (3)int **ptr; (4)in.. 阅读全文
posted @ 2013-08-10 16:26 Salesforce 阅读(435) 评论(0) 推荐(0)
摘要:假设一个单向链表,它的节点有一个数据类型是整型请写出一个函数,实现该链表的任意2个节点之间的反转操作,比如:12、42、56、1、67、2、66、23、10、11、34使用该反转操作实现第二个节点到第十个节点的操作,列表变为:12、11、10、23、66、2、67、1、56、42 阅读全文
posted @ 2013-08-10 14:38 Salesforce 阅读(397) 评论(0) 推荐(0)
摘要:建立一个学生成绩的线性链表,对其实现插入,删除,输出,最后销毁。#include #include struct grade{ int score; struct grade *next; };typedef struct grade NODE; //typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。 //使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字, //另一个是简化一些比较复杂的类型声明。struct grade *create(); //创建链表 void insert(NODE *head,NODE *pnew,int i); //插入链表 阅读全文
posted @ 2013-08-10 14:03 Salesforce 阅读(957) 评论(0) 推荐(0)
摘要:一、malloc()和free()的基本概念以及基本用法: 1、函数原型及说明: void *malloc(long NumBytes):该函数分配了NumBytes个字节,并返回了指向这块内存的指针。如果分配失败,则返回一个空指针(NULL)。 关于分配失败的原因,应该有多种,比如说空间不足就是一种。 void free(void *FirstByte): 该函数是将之前用malloc分配的空间还给程序或者是操作系统,也就是释放了这块内存,让它重新得到自由。 2、函数的用法: 其实这两个函数用起来倒不是很难,也就是malloc()之后觉得用够了就甩了它把它给free()了,举个简单例子: 程 阅读全文
posted @ 2013-08-10 13:52 Salesforce 阅读(586) 评论(0) 推荐(0)
摘要:两者的区别:1. 共用体和结构体都是由多个不同的数据类型成员组成, 但在任何同一时刻, 共用体只存放了一个被选中的成员, 而结构体的所有成员都存在。2. 对于共用体的不同成员赋值, 将会对其它成员重写, 原来成员的值就不存在了, 而对于结构体的不同成员赋值是互不影响的。1.2 什么是高/低字节现在我们弄清了高/低地址,接着考虑高/低字节。有些文章中称低位字节为最低有效位,高位字节为最高有效位。如果我们有一个32位无符号整型0x12345678,那么高位是什么,低位又是什么呢? 其实很简单。在十进制中我们都说靠左边的是高位,靠右边的是低位,在其他进制也是如此。就拿 0x12345678来说,从高 阅读全文
posted @ 2013-08-08 22:04 Salesforce 阅读(687) 评论(0) 推荐(0)
摘要:解体思路:原先指向后边节点的指针,现将它改成指向前一个节点。---------------------------------------------------------struct linka { int data; linka* next;};void reverse(linka*& head){ if(head ==NULL) return; linka*pre, *cur, ... 阅读全文
posted @ 2010-09-09 23:08 Salesforce 阅读(239) 评论(0) 推荐(0)
摘要:在网上搜集了一些有关PPP的资料,整理了一下,不能说是原创,仅供大家学习研究。PPP(Point-to-Point Protocol点到点协议)是为在同等单元之间传输数据包这样的简单链路设计的链路层协议。这种链路提供全双工操作,并按照顺序传递数据包。设计目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案。PPP的特点:1)明确地划... 阅读全文
posted @ 2010-08-22 15:52 Salesforce 阅读(897) 评论(0) 推荐(0)
摘要:预处理器(Preprocessor)1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: 1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2). 懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年... 阅读全文
posted @ 2010-08-15 23:31 Salesforce 阅读(571) 评论(0) 推荐(0)
摘要:4. static有什么用途?(请至少说明两种)1.限制变量的作用域2.设置变量的存储域7. 引用与指针有什么区别?1) 引用必须被初始化,指针不必。2) 引用初始化以后不能被改变,指针可以改变所指的对象。2) 不存在指向空值的引用,但是存在指向空值的指针。8. 描述实时系统的基本特性在特定时间内完成特定的任务,实时性与可靠性9. 全局变量和局部变量在内存中是否有区别?如果有,是什么区别?全局变量... 阅读全文
posted @ 2010-08-15 23:30 Salesforce 阅读(484) 评论(0) 推荐(0)
摘要:1. char * const p;  char const * p  const char *p  上述三个有什么区别?  char * const p; //常量指针,p的值不可以修改  char const * p;//指向常量的指针,指向的常量值不可以改  const char *p; //和char const *p------------------------------------... 阅读全文
posted @ 2010-08-15 23:05 Salesforce 阅读(451) 评论(0) 推荐(1)
摘要:大部分公司在招聘技术职位面试的时候,都会考c语言基础,而sizeof是他们最喜欢考的知识点,现总结如下:1、定义sizeof是C语言的一种单目操作符,它并不是函数。sizeof操作符以字节形式给出了其操作数所占存储空间的大小。操作数可以是一个表达式或括在括号内的类型名。操作数所占存储空间的大小由操作数的类型决定。作用就是返回一个对象或者类型所占的内存字节数。2、语法sizeof有如下三种语法形式:... 阅读全文
posted @ 2010-08-15 23:03 Salesforce 阅读(1658) 评论(4) 推荐(2)
摘要:一个由C/C++编译的 程序占用的内存分为以下几个部分1、栈区(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。3、全局区(静态区) (static)—,全局变... 阅读全文
posted @ 2010-07-27 23:18 Salesforce 阅读(351) 评论(0) 推荐(0)
摘要:C语言程序编译的内存分配:1.栈区(stack)--编译器自动分配释放,主要存放函数的参数值,局部变量值等;2.堆区(heap)--由程序员分配释放;3.全局区或静态区--存放全局变量和静态变量;程序结束时由系统释放,分为全局初始化区和全局未初始化区;4.字符常量区--常量字符串放与此,程序结束时由系统释放;5.程序代码区例: //main.cint a=0; //全局初始化区char *p1; ... 阅读全文
posted @ 2010-07-27 23:13 Salesforce 阅读(295) 评论(0) 推荐(0)
摘要:1.static有什么用途?(请至少说明两种) 1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。 3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用2.引用与指针有什么区... 阅读全文
posted @ 2008-09-11 22:56 Salesforce 阅读(2781) 评论(0) 推荐(0)
摘要:在C语言的学习中,对内存管理这部分的知识掌握尤其重要!之前对C中的malloc()和free()两个函数的了解甚少,只知道大概该怎么用——就是malloc然后free就一切OK了。当然现在对这两个函数的体会也不见得多,不过对于本文章第三部分的内容倒是有了转折性的认识,所以写下这篇文章作为一个对知识的总结。这篇文章之所以命名中有个“浅谈”的字眼,也就是这个意思了!希望对大家有... 阅读全文
posted @ 2008-09-11 22:56 Salesforce 阅读(657) 评论(0) 推荐(0)