收集
文章平均质量分 63
「已注销」
这个作者很懒,什么都没留下…
展开
-
ROM、RAM、DRAM、SRAM和FLASH的区别
ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。 RAM有两大原创 2011-10-10 20:04:21 · 546 阅读 · 0 评论 -
BOOL,float,指针变量与零值比较的if语句
BOOL flag 与“零值”比较的if语句:标准答案: 不良风格: if(flag) if(flag == TRUE) if(!flag) if(flag ==原创 2013-04-07 21:01:16 · 1102 阅读 · 0 评论 -
const和#define的用途和比较以及注意事项
const的用途: 不规范的说法:const意味着“只读”。 1、可以定义const变量 2、const可以修饰函数参数(输入参数)、返回值、甚至函数的定义体。被const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。#define 宏定义: 宏定义中不能有分号,还有要注意宏定义中括号的使用。 const和#define都可以原创 2013-04-07 21:19:07 · 1043 阅读 · 0 评论 -
关于sizeof和strlen的使用
关于sizeof和strlen经常容易搞混淆,特别是初学者。 先看一个关于sizeof的应用的实例: 写出下面程序的答案: 答案:4,11,100,400,4,3,4,6,8,4,4 1、ss1是一个指针,指针的大小是一个定值,就是4. 2、ss2是一个字符数组,这个数组的出事大小原创 2013-04-07 21:08:10 · 914 阅读 · 0 评论 -
内存使用
在做嵌入式开发过程中,内存问题时时提醒着我们,小心小心又小心的使用者有限的内存。 内存分配方式:1、从静态区域分配。内存在程序编译的时候就已经分配好了,这块内存在程序的整个运行期间都存在。例如全局变量、static变量。2、在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配的运算内置于处理器的指令集中,效率很高,但是原创 2013-04-07 20:59:04 · 694 阅读 · 0 评论 -
判断一个邮箱地址是否合格
主要使用的函数:memchr函数:在某一内存范围中查找一特定字符 #include void *memchr(const void *s,int c,size_t n) 函数说明:函数从头开始搜索s所指的内容内存前N个字节,直到发现第一个值为c的字节,则返回 指向该字节的指针; 返回值:如果找到指定的字节则返回改字节的指针,否则返回0. 判断一个邮箱地址原创 2013-04-07 21:12:48 · 3345 阅读 · 0 评论 -
stat结构体以及文件状态相关函数
基本的stat结构体的大体组成成员如下: struct stat { mode_t st_mode; //文件类型或文件模式 ino_t st_ino; //目录进入点的inode节点 dev_t st_dev; //系统文件设备 dev_t st_rdev; //特殊文件设备原创 2013-04-07 21:17:25 · 2633 阅读 · 0 评论 -
static关键字的作用
这个关键看似简单,但是在程序中却有很多的作用: 1、在函数体内,一个被申明为静态的变量在这一函数调用的过程中维持不变。 2、在模块内但是函数外,一个被声明为静态的变量可以被模块内所有函数访问,但是不能被模块外的函数访问。 3、他是一个本地的全局变量。在模块内,一个被申明为静态的函数只可被这一模块捏的函数调用,那就是,这个函数被限制在声明他的模块的本地范围内。原创 2013-04-07 21:20:11 · 622 阅读 · 0 评论 -
struct tm时间和字节数之间的转换
在某些场合需要将时间存储格式压缩到4个字节,在字符串的时间和字节数的格式之间进行一个转换。短时间存储的格式:Time(HMS) /*时分秒*/ Bit Position0 1 2 3 45 6 7 8 9 AB C D E FLength(bit)56原创 2013-04-08 19:51:18 · 2548 阅读 · 0 评论 -
关于struct,union,enum三大复合数据类型
struct结构体struct声明一个结构体,它将一些相关联的数据打包成一个整体。首先看结构体占用内存空间的大小。struct student{ }stu;sizeof(stu)是多少?这里我们联想到前面讲到的模子的概念,大概就知道答案了。关于求结构体所占内存空间的大小,我们遵循字节对齐的原则,计算的出的结果是8的倍数。看下面的代码:struct stude原创 2013-04-08 19:54:04 · 7715 阅读 · 1 评论 -
ipcs命令和ipcrm命令介绍
在进程间通信过程学习中,经常用到的两个命令:ipcs和ipcrm.查看ipc对象信息#ipcs查看全部ipc对象信息#ipcs -a查看消息队列信息#ipcs -q查看共享内存信息#ipcs -m查看信号量信息#ipcs -s删除IPC对象的ipcrmipcrm -[smq] ID 或者ipcrm -[SMQ] Key-q原创 2013-04-08 20:08:41 · 1042 阅读 · 0 评论 -
C语言中三大经典的排序算法
掌握好常用的排序算法,在实际的项目开发中可以节省很多的时间。每一种排序算法在执行的效率上是存在差别的,这些微小的时间差,也许在平常的联系当中感觉不到,但是涉及到数据量比较大或者是在资源比较紧张的系统中就显得尤其的重要,比如嵌入式系统。下面简要介绍三种常用的排序算法以及他们的执行效率的比较。冒泡排序:思路:将相邻的两个数比较,将较小的数调到前头;有n个数就要进行n-1趟比较,第一次比较中要进原创 2013-04-08 19:59:44 · 14420 阅读 · 0 评论 -
mysql查询操作
一查询数值型数据: SELECT * FROM tb_name WHERE sum > 100; 查询谓词:>,=,,!=,!>,!,= 二查询字符串 SELECT * FROM tb_stu WHERE sname = '小刘' SELECT * FROM tb_stu WHERE sname like '刘%' SELECT * FROM tb_stu W转载 2013-04-08 20:29:27 · 662 阅读 · 0 评论 -
C语言编程时常犯十八个错误
C语言的最大特点是:功能强、使用方便灵活。C编译的程序对语法检查并不象其它高级语言那么严格,这就给编程人员留下“灵活的余地”,但还是由于这个灵活给程序的调试带来了许多不便,尤其对初学C语言的人来说,经常会出一些连自己都不知道错在哪里的错误。看着有错的程序,不知该如何改起,本人通过对C的学习,积累了一些C编程时常犯的错误,写给各位学员以供参考。1、书写标识符时,忽略了大小写字母的区别。m转载 2013-04-11 15:33:31 · 672 阅读 · 0 评论 -
opendir----打开目录函数
opendir 打开目录相关头文件:#include #include 函数原型:DIR *opendir(const char *name);函数说明:opendir()函数用来打开参数name指定的目录,并返回DIR *形态的目录流,和open函数类似,接下来对目录的读取和搜索都要使用此返回值。返回值:成功返回DIR *形态的目录原创 2013-05-09 14:23:26 · 1758 阅读 · 0 评论 -
C语言实现定积分求解方法
求定积分的方法有很多种,下面是我总结的几种比较常用的方法。#include #include #include #include #define N 3double fun(double x){ double y; y = sqrt(4-(x)*(x)); //y = sin(x); return y;}/*随机点法求定积分*/double D原创 2013-08-19 16:30:45 · 10719 阅读 · 0 评论 -
一个整数数组里面,除了两个数之外,其他的数字都出现了两次,写一个程序找出这两个数
一个整数数组里面,除了两个数之外,其他的数字都出现了两次,写一个程序找出这两个数,要求算法的时间复杂度为O(n).n为数组的长度。 程序代码如下://取二进制中首个为1的位置int findFirstOne(int value){ int pos = 0; while ((value&1) != 1) { value = value>>1;原创 2013-08-22 15:18:42 · 2568 阅读 · 1 评论 -
windows和linux的比较
最近有关操作系统的讨论无论在法庭上还是在网上都是越来越热烈了。这种热烈气氛的出现自然是与操作系统巨头 Microsoft 脱不了干系的。法律界为是否该裁定并惩罚 Microsoft 在操作系统上的非法垄断行为而头疼,软件业界为如何抵御 Microsoft 君临天下的庞大攻势而失眠,而被 Microsoft 日益苛刻的版权限制惹恼了的个人和公司电脑用户也在思考是否还应该对 Microsoft 从一而转载 2011-11-28 08:46:20 · 649 阅读 · 0 评论 -
linux下求文件的实际大小
昨天看代码,看到一个问题,在linux下求一个文件的实际的大小,代码中用的方法是反复的调用fseek函数和ftell函数。如于之前用过stat的,所以就和同事讨论了一下为什么不用stat,下面是这两种方法的比较。具体的程序如下: 1 、用fseek函数和ftell函数实现。 #include #include #include #include int原创 2011-11-16 16:14:36 · 1179 阅读 · 0 评论 -
宏定义相关技巧
写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。另外,当你写下面的代码时会发生什么事 least = MIN(*p++, b); 解答: #define MIN(A,B) ((A) <= (B) ? (A) : (B)) MIN(*p++, b)会原创 2011-10-10 21:19:24 · 1485 阅读 · 2 评论 -
中断服务子程序
中断是嵌入式系统中重要的组成部分,这导致了很多编译开发商提供一种扩展—让标准C支持中断。具代表事实是,产生了一个新的关键字 __interrupt。下面的代码就使用了__interrupt关键字去定义了一个中断服务子程序(ISR),请评论一下这段代码的。__interrupt原创 2011-10-11 19:07:41 · 2091 阅读 · 0 评论 -
C语言中指针数组和数组指针的关系
首先要知道在C程序中指针就是地址。指针与数组之间有指针数组与数组指针两种:一:指针数组先分析下面的例子:typedef unsigned charU8; //定义U8来代替unsigned charU8 *point[2]; //定义一个指针一维原创 2011-10-11 21:46:22 · 878 阅读 · 0 评论 -
linux面试题
一.填空题:1. 在Linux系统中,以 文件 方式访问设备 。2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统。3. Linux文件系统中每个文件用 i节点 来标识。4. 全部磁盘块由四个部分组成,分别为引导块 、专用块 、 i节转载 2011-10-11 19:20:29 · 626 阅读 · 0 评论 -
OSI七层协议各层的功能
1、物理层:该层包括物理连网媒介,如电缆连线连接器,物理层的协议产生并检测电压以便能够发送和接受携带数据的信号。如中继器、集线器、网线、HUB。2、数据链路层:控制网络层和物理层之间的通信,主要功能是如何在不可靠的物理线路上进行数据的可靠传递。如:网卡、网桥、交换机。3、原创 2011-10-11 19:45:10 · 2127 阅读 · 0 评论 -
结构体的大小
对齐: 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。对齐的作用和原原创 2011-10-11 20:30:22 · 814 阅读 · 0 评论 -
函数指针和指针函数
指针和函数之间的关系主要包括三个方面的内容:1、指针可以指向某个函数,即函数指针;2、函数的返回值可以是指针类型的变量,即指针函数3、指针可以作为函数的参数。 指针函数:指向函数的指针。1、为指向函数的指针赋值函数名是指针常量,其值为该函数在内存中原创 2011-10-12 14:32:00 · 611 阅读 · 0 评论 -
嵌入式C语言面试题
1、读程序,回答问题int main(int argc,char *argv[]){int c=9,d=0;c=c++%5;d=c;printf("d=%d\n",d);return 0;}a)、写出程序的结果;b)、在一个可移植的系统中这原创 2011-10-18 14:48:38 · 1134 阅读 · 0 评论 -
ARM系统中函数调用过程中的参数传递
在嵌入式软件编程中,经常会用到函数调用,之前在学习如何在C语言中嵌入汇编时有了解到C语言之前的参数调用是使用寄存器R0传递第一个参数,R1传递到第二个..一直到R3传递第四个参数.但是实际上有时可能传递的参数非常多,超过8个,或是参数中有浮点数之类,参数也会超过4个寄存器,对于超转载 2011-10-18 14:49:56 · 6886 阅读 · 0 评论 -
嵌入式面试题
C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法。这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是相当有趣的。 从被面试者的角度来讲,你能了解许多关于出题者或监考转载 2011-10-10 21:07:57 · 590 阅读 · 0 评论 -
嵌入式linux工程师面试题目C语言基础部分
在网上看到了一篇嵌入式的面试题,忽然觉得自己很渺小……在未来一段时间内我会陆续贴上我的答案,当然可能有些我做不出来,做出来的也不一定准确,在检验和提高自己的同时,希望有走过路过高人指点一二。下面的题目必须全部答对才给分:1、 如何在C中初始化一个字符数组。2、 如何在转载 2011-10-18 15:55:29 · 1559 阅读 · 1 评论 -
Linux工程师面试题C部分
1、"匈牙利命名法"有什么优缺点?(2分)2、下面x, y, *p的值是多少,有什么问题?(2分)int x, y, z = 2;int *p=&z;x=sizeof*p;y=x/*p; // x=?, *p=?, y=?, 有什么问题?3、下面的转载 2011-10-18 16:42:58 · 6010 阅读 · 4 评论 -
extern和const关键字的作用
、extern的作用:a、声明一个外部变量。注意此刻声明时不能定义该变量。因为在c++里变量只能定义一次。这样做的好处是在其他文件里面可以使用,但此时必须申明它。如:在a文件中声明了 extern int i;在b文件中可以直接使用这个变量,此时可以声明extern int原创 2011-10-10 21:37:25 · 1484 阅读 · 0 评论 -
ioctl函数在网络编程中的应用
ioctl 函数 本函数影响由fd 参数引用的一个打开的文件。 #includeint ioctl( int fd, int request, .../* void *arg */ );返回0 :成功 -1 :出错 第三个参数总是一个指针,但指针的类型依赖于request 参数。我们可以把和网络相关的请求划分为6 类:套接口操作文件操作接口操作转载 2011-11-16 09:46:24 · 528 阅读 · 0 评论 -
sizeof和strlen的区别
Sizeof与Strlen的区别与联系(转)1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。该类型保证能容纳实现所建立的最大对象的字节大小。 2.sizeof是算符,strlen是函数。 3.sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以''\0''结尾的。sizeof还可以用函转载 2011-11-16 09:42:56 · 568 阅读 · 0 评论 -
网络设备中的数据结构信息
12.5.4 网络设备数据结构 网络设备数据结构--device,它是网络驱动程序的最重要的部分,也是理解Linux网络接口的关键,它的源代码 保存在include / linux / netdevice.h中,这个结构比较庞大,在此不予列出,仅仅对主要的域给予解释。所有的网络设备的信息和操作都保存在设备数据结构中。每注册一个网络设备,都需要提供数据结构中各个域的数据,这些域的含义下转载 2011-11-16 09:45:02 · 965 阅读 · 0 评论 -
关于微软的一道面试题
原题是:求 1 + 2 + 3 + ... + n要求:不能用乘除法,不能用if,while, switch,case, 不能用(a 关键点:利用&&运算的短路性质以及递归 关键代码:int fun3(int n, int *sum){ int ret; ret = n&&fun3(n-1, sum); return (*sum += n); }原创 2013-08-22 15:09:18 · 1064 阅读 · 0 评论