- 博客(29)
- 收藏
- 关注
原创 atoi与itoa
linux下有atoi函:ATOI(3) Linux Programmer’s Manual ATOI(3)NAME atoi, atol, atoll, atoq - convert a string to an integerSYNOPSIS #includ
2016-12-05 22:39:12
474
转载 枚举与宏
1. 枚举的声明,其形式为:访问修饰符 enum 枚举名: 基础类型 { 枚举成员(标识符) } 说明:任意枚举类型都有基础类型,该基础类型可以是除 char 以外的任何整型,如:short、ushort、int、uint、long 、 ulong。基础类型必须能够表示该枚举中定义的所有枚举成员。枚举声明时可以对基础类型进行显式地声明。而没有显式声明时基础类型默认是 int。基础类型指定为每个
2016-11-30 21:03:33
843
转载 sizeof与strlen
一、sizeof的概念 sizeof是C语言的一种单目操作符,如C语言的其他操作符++、--等。它并不是函数。sizeof操作符以字节形式给出了其操作数的存储大小。操作数可以是一个表达式或括在括号内的类型名。操作数的存储大小由操作数的类型定。 二、sizeof的使用方法 1、用于数据类型 sizeof使用形式:sizeof(type) 数据类型必须用括号括住。如
2016-11-29 21:13:47
347
原创 单链表,可变参数函数
顺序表利用数组元素在物理位置上的邻接关系来表示线性表中的数据元素之间的逻辑关系,所以顺序表有这些缺点;1,插入和删除操作需移动大量元素;2,表的容量难以确定;3,造成存储空间的“碎片”。所以我们可以利用动态存储分配来存储线性表——单链表,其存储单元可以是连续的也可以是不连续的,结点由两部分组成;数据域(存放数据元素),指针域(存放后继元素的地址(结点地址))。由于第一个
2016-11-25 21:46:32
490
转载 内联函数
1 inline只是个编译器建议,编译器不一定非得展开Inline函数。 例如: Inline函数地址引用 inline在递归函数中使用2 inline必须用于函数定义,对于函数声明,inline不起作用 例如: inline max(int,int); //没有Inline作用 只有 i
2016-11-24 20:23:41
364
转载 volatile关键字
volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改。用volatile关键字声明的变量i每一次被访问时,执行部件都会从i相应的内存单元中取出i的值。没有用volatile关键字声明的变量i在被访问的时候可能直接从cpu的寄存器中取值(因为之前i被访问过,也就是说之前就从内存中取出i的值保存到某个寄存器中),之所以直接从寄存器中取值,而不去内存中取值
2016-11-23 22:08:59
270
转载 typedef与#define区别
Typedef和define都可以用来给对象取一个别名,但是两者却有着很大不同。 1. 首先,二者执行时间不同 关键字typedef在编译阶段有效,由于是在编译阶段,因此typedef有类型检查的功能。 Define则是宏定义,发生在预处理阶段,也就是编译之前,它只进行简单而机械的字符串替换,而不进行任何检查。 #define用法例子:#define f(x) x*x mai
2016-11-22 21:48:00
306
原创 随记
今天的学习收获,预习了数据结构部分内容,线性表,顺序表,单链表,双链表以及静态链表等名词解释,主要对单链表等了解一下,区分了他与顺序表的不同,单链表通过结点使数据存储单元可以是连续的也可以是不连续的,改变了顺序表通过连续地址的存储单元依次存储线性表的数据元素。虽然了解了我们可以对表进行一系列的像初始化,求长度,按位查找,按指查找,插入,删除,遍历等操作,但对其的程序实现,原理等还不清楚,需要自己敲
2016-11-21 21:11:25
338
转载 Linux开机自启动程序
见过在windows下设置一个程序自启动,接触Linux后怎样设置一些程序开机自启动?linux中设置自动启动可以编辑/etc/rc.d/rc.local文件,使用vim在/etc/rc.d/rc.local添加你需要启动的内容即可。Linux加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init。init根据配置文件继续引导过程,启动其它进程。通常情况下,修改放置在 /etc/
2016-11-17 21:59:29
499
转载 malloc,realloc,calloc函数
在上一篇文章中,使用malloc函数给指针分配空间,注意到还有realloc,calloc函数,同为c内存分配函数,它们之间有何异同? 三个函数的申明分别是: void* realloc(void* ptr, unsigned newsize); void* malloc(unsigned size); void* calloc(size_t numElements,
2016-11-16 20:44:18
326
原创 笔记
今天接触到了常见导致段错误的野指针,学习了如何避免以及解决,由此学习了如何从另一角度评判判一段程序。1,但一个指针没有指向时,应该置为NULL;2,检查指针是否分配空间,应该用malloc函数奉陪;3,检查malloc分配空间是否成功;4,检查分配空间是否为空;5,释放空间;6,用完置空;关于malloc函数的实现在Linuxc下的解释是NAME c
2016-11-14 21:38:01
329
转载 函数指针与指针函数
函数指针 函数类型”说明函数的返回类型,“(标志符指针变量名 )”中的括号不能省,若省略整体则成为一个函数说明,说明了一个返回的数据类型是指针的函数,后面的“形参列表”表示指针变量指向的函数所带的参数列表。函数指针的声明方法为:返回值类型 ( * 指针变量名) ([形参列表]);注1:"返回值类型"说明函数的返回类型,"(指针变量名 )"中的括号不能省,括号
2016-11-11 21:16:02
345
转载 函数的参数与返回值
函数的参数在函数定义中出现的参数可以看做是一个占位符,它没有数据,只能等到函数被调用时接收传递进来的数据,所以称为形式参数,简称形参。函数被调用时给出的参数包含了实实在在的数据,会被函数内部的代码使用,所以称为实际参数,简称实参。形参和实参的功能是作数据传送,发生函数调用时,实参的值会传送给形参。形参和实参有以下几个特点:1) 形参变量只有在函数被调用时才会分配内存
2016-11-10 22:39:52
471
转载 栈空间与堆空间
c程序的内存分配:1,栈空间:局部变量,函数形参,自动变量,系统管理先进后出2,堆空间:malloc,calloc,ralloc函数,用户管理先进先出3,全局数据区:bss未初始化,全局变量;ordat,常量;静态数据区:初始化全局变量4,代码区;存放函数二进制代码堆和栈的区别:1、由以上综述就可以得知,他们程序的内存分配方式不同。2、申请和响应不同:
2016-11-09 21:27:48
352
转载 位运算应用
位运算符的应用 (源操作数s 掩码mask)(1) 按位与-- &1 清零特定位 (mask中特定位置0,其它位为1,s=s&mask)2 取某数中指定位 (mask中特定位置1,其它位为0,s=s&mask)(2) 按位或-- |常用来将源操作数某些位置1,其它位不变。 (mask中特定位置1,其它位为0 s=s |mask)(3) 位异或-- ^
2016-11-08 21:44:50
344
转载 段错误
1什么是段错误 所谓的段错误就是指访问的内存超出了系统所给这个程序的内存空间,通常这个值是由gdtr来保存的,他是一个48位的寄存器,其中的32位是保存由它指向的gdt表,后13位保存相应于gdt的下标,最后3位包括了程序是否在内存中以及程序的在cpu中的运行级别,指向的gdt是由以64位为一个单位的表,在这张表中就保存着程序运行的代码段以及数据段的起始地址以及与此相应
2016-11-07 21:59:52
399
转载 位运算与小数的二进制表示
C语言提供了六种位运算符号;按位与&,按位或|,按位异或^,左移及右移。&:参与运算的两个数对应二进制位相与,均为1时,结果位为1,否则为0;参与运算的数以补码的方式出现。|:参与运算的两个数对应二进制位相或,只要两个二进位有一个为1时,结果位1,参与运算的数以补码的方式出现。^;参与运算的两个数对应二进制位相异或,当对应的二进位相异时,结果为1,参与运算的数以补码的方式出现。
2016-11-06 21:51:02
3643
转载 关于进制
进制也就是进制位,对于接触过电脑的人来说应该都不陌生,我们常用的进制包括:二进制、八进制、十进制与十六进制,它们之间区别在于数运算时是逢几进一位。1.2进制从最后一位开始(从右向左),把每一位数字分别乘以2^0,2^1,2^2,2^3...然后全部加起来就是对应的10进制数了2.2进制转成8进制,从右向左,每三位一组隔开(最左边那组可能不到3位),然后用计算10
2016-11-05 22:45:57
457
原创 Linux下头文件
今天在敲一个程序时用到了VC下的一个conio.h头文件,发现在Linux里面编译不了,找了点关于这个头文件的资料:conio.h不是C标准库中的头文件,在C standard library,ISO C 和POSIX标准中均没有定义。conio是Console Input/Output(控制台输入输出)的简写,其中定义了通过控制台进行数据输入和数据输出的函数,主要是一些用户通
2016-11-04 15:03:49
1760
转载 elf文件
Linux ELF ELF = Executable and Linkable Format,可执行连接格式,是UNIX系统实验室(USL)作为应用程序二进制接口(Application Binary Interface,ABI)而开发和发布的。扩展名为elf。工具接口标准委员会(TIS)选择了正在发展中的ELF标准作为工作在32位INTEL体系上不同操作系统之间可移植的二进制文件格式。假定开
2016-11-03 20:37:45
346
转载 Linux反汇编命令
作为初学者我们还接触不到很多linux命令,出于好奇对于Linux的反汇编命令也找了下相关资料objdump命令是Linux下的反汇编目标文件或者可执行文件的命令objdump命令的man手册objdump - 显示二进制文件信息objdump [-a] [-b bfdname | --target=bfdname] [-C] [--de
2016-11-02 21:47:52
2570
原创 Linux下的静态库与动态库
1静态库与动态库的区别库文件可以为我们在编写程序时提供函数,文件等,我们可以直接使用,但不能看到其实现,静态库,代码在执行之前已经加入到执行代码中,成为执行程序一部分,文件后缀为.a。动态库,代码在执行程序启动时加载到执行码代码中,文件后缀为.so。2静态库与动态库的优缺点静态库由于其代码在执行程序之前已经加入到执行吗中,所以他运行效率高,自然也造成编译速度慢的缺点,并且他可执行文件体
2016-11-01 21:56:06
315
转载 C语言的一些优缺点
c语言是一种面向过程的编程语言,对于面向过程与面向对象,前者分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了,后者是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行。C语言有很多优点如:1,允许直接访问物理地址,对硬件进行操作由于C语言允许直接访问物理地址,可以直接对硬件
2016-10-31 22:19:56
2585
转载 gcc编译器
gcc编译器是一个交叉平台编译器,可以为x86,ARM等不同体系结构的硬件平台编译程序,并且可以编译C,C++,Pascal,java等十数种高级语言。gcc编译程序时其过程可以被分为四个部分:预处理,编译,链接预处理,gcc -E test.c -o text.i命令语句生成.i文件,-E参数是gcc只进行预编译。编译,gcc -S text.i -o text.s命令语句生成.s文件,
2016-10-30 21:31:03
370
原创 static小结
静态变量属于静态存储方式,但反之不一定成立。 静态局部变量特点:1,静态局部变量在函数内定义,但不像自动变量那样调用时就存在,退出函数就消失。2,静态局部变量只能在定义该变量的的函数内使用。3,允许对构造类静态局部量赋初值,若没有赋初值,系统自动赋值0.4,对基本类型的静态局部变量若在说明时没赋以初值,则系统自动赋以0值。静态全局变量: 全局变量(外部变量)与
2016-10-29 21:35:20
347
转载 格式化输出函数
将数据从计算机中送到外部设备,如显示屏,打印机等的过程称为“输出”;将数据从外部设备如键盘,扫描仪等的过程称为“输入”,所以输入输出是以计算机为主体而言的。输出函数printf(格式控制,输出列表),格式控制是以双引号括起来的字符串,字符串中的字符如果是普通字符,系统会原样输出;printf("hello world!");如果是格式控制字符如%d,%c等其作用是将要输出的数据转换为指定的格式
2016-10-27 21:52:04
850
原创 初涉Linux命令
对于大多数普通用户来说在Windows上我们可以通过桌面来进行自己想要的操作,在linux系统中我们可以通过一些命令语句来控制并达到自己想要的操作(虽然我们仍可以通过鼠标来实现)。刚学习Linux我接触到一些基本命令:adduser 添加用户 cd 查看目录passwd 添加用户密码
2016-10-27 13:52:10
281
原创 C语言基本数据类型
记得大学一年级上的基础课中就有C 语言,刚开始学的时候感觉很难(虽然现在感觉也不容易),最近开始重新翻开C语言的书籍,对于其中的基本数据类型感觉很重要也别有一翻feel。C语言基本数据类型有;int,short int ,long int ,double , float,char. 不管是整型,浮点型以及字符型的数据都有其表示范围,而这些需要我们根据数据在计算机中所占存储量决定。
2016-10-25 21:17:00
308
原创 对Linux的第一印像
第一次写博客,不知道应该有个怎样的格式,虽然老师给了我们指导。由于才开始学习Linux,我想可以说一下自己对他的第一映像以及遇到的一些困难和学到的东西吧! 刚开始我们接触到了Linux并安装了环境而且学了一些基本的命令,感觉很神奇,我可以用touch 来创建一个文件,gedit 来编辑他 ,cat 来查看文件里的内容,用gcc命令来编译,当然还有很多,感觉vim有点强,可以执行多种文本操
2016-10-25 10:48:15
453
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人