命令
小灰灰看月亮
这个作者很懒,什么都没留下…
展开
-
嵌入式课堂笔记
一:数据类型1、strlen:测量一个字符串有多少字符; 不统计\0;printf ("strlen (str)=%d\n",strlen (src));2、整数原码=补码 负数补码=原码取反+13、bit; 字节=(8bit); 半字=(2个字节=16bit);字=4个字节=32bit4、sizeof (num);测量一个变量字节长度(所占空间大小)5、特原创 2016-11-05 22:35:36 · 301 阅读 · 0 评论 -
单链表倒序
需要将单链表倒序,并输出新的链表核心代码Node *next = root->next;root->next = new_root;new_root = root;root = next;[cpp] view plain copy print?#include typedef转载 2016-12-10 21:59:55 · 282 阅读 · 0 评论 -
scanf,gets,getchar,fgets中的一些细节
1.getchar int getchar ( void ); Get character from stdin Returns the next character from the standard input (stdin). It is equivalent to calling getc with stdin as ar转载 2016-11-19 22:09:05 · 280 阅读 · 0 评论 -
进程的创建、运行、退出
创建: fork: 作用:创建一个进程原型:pid_t、fork(void)返回值: 出错=0 子进程>0 父进程子进程的数据堆栈空间都是从父进程拷贝过来的。vfork作用:建立一个新的进程原型:pid_t vfork返回值: 出错=0子进程>父进程头文件:#include fork 与 v原创 2016-12-11 22:45:09 · 343 阅读 · 0 评论 -
嵌入式课堂笔记
1、通过函数名找到函数的入口地址。2、给形参分配空间。3、传值:把实参变量对应的内存空间的值,传递给形参变量的对应空间。{当只读(只使用不修改)实参变量的值时,传实参变量变量名当写(即使用又修改)实参变量对应内存空间的地址}4、执行函数体语句。5、函数返回并释放内存空间;6、函数接口:函数原型、函数使用文档、函数接口的重要性。7、共用体的特点:共同使用一段空间容易产原创 2016-11-20 22:22:09 · 301 阅读 · 0 评论 -
C语言:关键字
1、static(保存在全局数据区)1)、延长局部变量生命周期:static 只执行一次。2)、修饰全局变量,只能在本文件中使用,其他文件不能访问。3)、修饰函数:一个函数被static修饰,只能在本文件中调用,不能在其他文件中使用。2、extern:(声明变量)外部声明作用:声明这个变量在其他文件想在一个文件中使用另一个文件中变量?在当前 .c 中外部声明。3、原创 2016-11-21 21:41:51 · 230 阅读 · 0 评论 -
退出 、 等待
wait作用:等待子进程中断或者是结束原型:pid_t wait (int * status)说明:暂停目前进程直到信号来或是进程结束。若调用wait时已经结束会立即返回。返回值:成功返回子进程pid号,出错 -1;头文件:#include #include wait pid功能:等待子进程结束或是中断;原型:p原创 2016-12-12 22:28:10 · 286 阅读 · 0 评论 -
嵌入式调试器GDB简单功能介绍
GNU开发了GDB调试器,虽然GDB没有图形调试界面,但对于从事嵌入式Linux应用开发的人员还是有必要知道GDB的使用方法的。一般来说,GDB主要帮助你完成下面四个方面的功能:1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式)3、当程序被停住时,可以检查此时你的程序中所发生的事。4、你可转载 2016-11-22 22:17:26 · 319 阅读 · 0 评论 -
typedef与define的区别
Typedef和define都可以用来给对象取一个别名,但是两者却有着很大不同。1. 首先,二者执行时间不同关键字typedef在编译阶段有效,由于是在编译阶段,因此typedef有类型检查的功能。Define则是宏定义,发生在预处理阶段,也就是编译之前,它只进行简单而机械的字符串替换,而不进行任何检查。 #define用法例子:#define f(转载 2016-11-23 22:02:06 · 229 阅读 · 0 评论 -
链表
#include "stdafx.h"#include "stdio.h"#include #include "string.h" typedef int elemType ; /************************************************************************//* 以下是关于线性表链接存储(单转载 2016-11-24 22:11:28 · 261 阅读 · 0 评论 -
合并两个链表成一个升序链表
LinkList mergeLinkedlist(LinkList &L1,LinkList &L2) { LinkList a=NULL; LinkList b=NULL; LinkList c=NULL; LinkList L; GreatList(L);转载 2016-12-13 22:12:15 · 600 阅读 · 0 评论 -
typedef与#define
typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间#define为一宏定义语句,通常用它来定义常量(包括无参量与带参量),以及用来实现那些“表面似和善、背后一长串”的宏,它本身并不在编译过程中进行,而是在这之前(预处理过程)就已经完成了,但也因此难以发现潜在的错误及其它代码维护问题. 区别的话,#是宏,处理的时候位于原创 2016-11-18 21:59:29 · 199 阅读 · 0 评论 -
数组与指针
一、指针1、对应的内存的空间: num ++;2、指针的步长: 整形:4个 字符1个;3、(*P)++:找到p变量里保存的地址对应的内存空间:4、指向内存空间:p++:对p对应的内存空间的值+1;(*p)++:对p指向的内存空间的值+1;p对应的指向空间地址.*p对应指向空间的值:num == *p;&num == p;原创 2016-11-17 22:13:41 · 191 阅读 · 0 评论 -
uC/OS - 2操作系统的简单概念
uC/OS - 2操作系统的简单概念实时系统:指逻辑和时序出现偏差将会引起严重后果的系统。前台程序:一般指死循环中的程序。后台程序:中断程序。临界代码段:代码的临界段也称为临界区,指处理时补课分割的代码。任务切换:1.保存任务1的工作状态。2.载入任务2的工作状态。3.跳转到任务2的地址空间工作。内核:多任务系统中,内核负责管理各个任务,或者说为每个任务分配CPU时间,转载 2016-11-13 22:55:10 · 630 阅读 · 0 评论 -
嵌入式课堂笔记
一、变量与常量;1、变量三大特点: (1)、变量的数据类型:主要说明变量占用内存空间大小。(2)、变量的作用域:变量有效性的范围,即变量的使用范围。(3)、储存类型:变量内存的存储方式不同地存储方式影响变量在内存周期。2、scanf与gets的区别:scanf不能捕获一个句子。gets可以捕获句子。3、算术运算符:+; -; * ; / ; %; ++ ;--;原创 2016-11-07 21:25:57 · 261 阅读 · 0 评论 -
C语言中函数strlen等的实现
#include //#include #define MAX_SIZE 1024/*把值定义在外面容易修改*/int my_strlen(char *str){ int len = 0; while(*str != '\0') { len++;str++; } return len;}ch转载 2016-11-08 22:07:55 · 254 阅读 · 0 评论 -
课堂笔记
一、什么是声明?什么是定义?它们有什么区别?什么是定义:所谓的定义就是(编译器)创建一个对象,为这个对象分配一块内存并给它取上名字,这个名字就是我们经常所说的变量名或对象名。但是注意,这个名字一旦和这块内存匹配起来(可以想象是这个名字嫁给了这块空间),它们就同生共死、终身不离不弃,并且这块内存的位置也不能被改变。一个变量或对象 在一定的区域内(如函数、全局等)只能被定义一次,如果定义多原创 2016-11-09 22:00:12 · 220 阅读 · 0 评论 -
续:Linux 系统命令
名称:expr 使用权限:所有使用者 ### 字串长度 shell>>expr length "this is a test" 14 ### 数字商数 shell>>expr 14 % 9 5 ### 从位置处抓取字串 shell>>expr substr "this is a test" 3 5 is i转载 2016-10-29 22:23:44 · 262 阅读 · 0 评论 -
动态库 静态库
一、动态库:gcc -shared - fPIC -o libadd.so add.c sub.c mul.c div.cgcc main.c二、静态库:gcc -c add.c sub.c mul.c div.car rcs libadd.a add.ogcc main .c -ladd -L -o main./main原创 2016-11-10 21:58:43 · 206 阅读 · 0 评论 -
嵌入式开发课堂笔记
一、底行:(命令行)1、替换:s/x/xx; 光标放在目标行:(一个)2、正行(全): s/Hello/hi s / xx / x / gc( 确认模式)3、替换3 -- 9 行: 3,9 s /xx / x / g4、替换全文: :%s / x / xx / g5、另存为原创 2016-10-30 22:25:53 · 263 阅读 · 0 评论 -
嵌入式开发课堂笔记
一、C语言1、概述:C语言特点:(1):可以直接操作硬件。(2):运行效率高 (3):移植性高 (嵌入式操作系统内核大部分用C语言编程的)2、面向结构的缺点:代码的复用性、维护性(出错后,不易查找错误)、拓展性差3、面向对象的优点:代码的复用性、维护性、拓展性好。4、怎样提高代码的复用性? :把功能分装成函数。5、当硬件做初始化时用汇编语言。原创 2016-10-31 22:39:37 · 214 阅读 · 0 评论 -
malloc,realloc,calloc的介绍与区别
一.首先我们先大体介绍下 malloc ralloc calloc1.malloc void* malloc(size_t size );分配size个字节的未初始化的存储空间。如果分配成功则返回指向被分配内存的指针(此存储区中的初始值不确定),否则返回空指针NULL。当内存不再使用时,应使用free()函数将内存块释放。函数返回的指针一定转载 2016-11-15 22:24:46 · 284 阅读 · 0 评论 -
链表
单链表的插入:假设存储元素e的结点为s,要实现p、p->next和s直间逻辑关系的变化,只需要将s插入到p和p->next之间即可。也就是说,让p的后继结点称为s的后继结点,s变成p的后继结点,如下图:这个操作的代码只需要两行:[cpp] view plain copy s->next = p->next; p->nex原创 2016-11-28 22:46:28 · 266 阅读 · 0 评论 -
大话数据结构8之栈和队列2
栈的应用--四则运算表达式求值 后缀(逆波兰)表示法定义:不需要括号的后缀表达式。例:9+(3-1)*3+10/2,后缀表达式为9 3 1 - 3 * + 10 2 / +,所有的符号都是在要运算的数字后面出现 后缀表达式计算结果:还是上例 初始化一个空栈,此栈用于对要运算的数字进出使用; 后缀表达式中的前三个都是数字,所以把运算符前面的数值依次进栈:9、3转载 2016-11-29 22:44:35 · 214 阅读 · 0 评论 -
比较两个分数的大小
比较两个分数的大小,主要的思想是输入的两个分数当分母不相同时,先通分,换算成相同的分母后,然后在相互比较分子的大小,如果分母相同时,直接比较两个分子的大小实例代码:[html] view plain copy /****************************************************原创 2016-11-26 22:07:19 · 655 阅读 · 0 评论