C语言
文章平均质量分 89
庾志辉
这个作者很懒,什么都没留下…
展开
-
结构体变量之间的比较和赋值原理
结构体变量之间的比较方法和赋值原理:结构体变量之间可以直接赋值我想大家都知道了。但结构体变量之间可以做比较吗?答案肯定是不行的,因为比较符号只作用于基本数据类型。如果是用C++或者Java来编程时遇到结构体变量之间的比较,那还好办直接对操作符重载就可以了。但如果是用C语言来编程遇到它呢?很多人说那可以自己写个函数啊,自己想怎么实现就怎么实现,况且写个结构体变量之间的比较程序又不是什么难事。但我想问的是你遇到的结构体里面的成员才多少个?如果是一个结构体中包含多个结构体(而结构体中又包含了结构体,比如ovs中的原创 2014-08-12 22:39:33 · 10609 阅读 · 1 评论 -
getopt、getopt_long、getopt_long_only使用实例
现在开始慢慢学习下上层开发,因为要为底层写些工具。首先从命令行参数的过滤获取开始,有三个函数用来操作命令行参数,以前我获取命令行都是自己用argv和argc做个循环获取的,其中各种转换和判断有点繁琐。现在学习下这三个函数怎么使用,可以方便后期的开发; 在学习这三个函数之前先说明下:Linux的命令行选项有两种类型:短选项和长选项,前者以 '-' 作为前导符,后者以 '--' 作为 getopt()函数是专门用来处理命令行参数短选项的,不能处理长选项参数; 头文原创 2015-08-24 21:34:53 · 2195 阅读 · 0 评论 -
指针常量/常量指针 数组指针/指针数组 函数指针/指针函数 返回函数指针的函数/返回数组指针的函数
C语言中有各种比较纠结的结构,容易混淆,也经常说是面试的重点,现在就来总结下各种小纠结;指针常量和常量指针 要想搞清楚这一对,必须先知道const关键字;const关键字用来修饰一个变量,表示该变量是只读变量,不可以修改的;(在C语言中const修饰的变量是可以用指针来强制改变的,但在C++中是不行的;) 顺便说下const的几个作用:原创 2015-03-30 14:36:33 · 1459 阅读 · 0 评论 -
排序算法之 归并排序 及其时间复杂度和空间复杂度
在排序算法中快速排序的效率是非常高的,但是还有种排序算法的效率可以与之媲美,那就是归并排序;归并排序和快速排序有那么点异曲同工之妙,快速排序:是先把数组粗略的排序成两个子数组,然后递归再粗略分两个子数组,直到子数组里面只有一个元素,那么就自然排好序了,可以总结为先排序再递归;归并排序:先什么都不管,把数组分为两个子数组,一直递归把数组划分为两个子数组,直到数组里只有一个元素,这时候才开始排序,让两原创 2015-03-12 16:16:47 · 59342 阅读 · 2 评论 -
Linux中的函数间跳转:setjmp()和longjmp()
先来看个实例吧,在 用c++写的简易学生通讯录中有那么个实例:删除通讯录中某个人的号码;1、开始是主页面菜单函数,选择删除功能后;2、跳转到删除信息函数中,在这个函数中还要先调用查找函数;3、在查找函数中又要判断以什么方式查找(姓名还是学号);4、选择好查找方式以后,查找到该人信息返回;5、打印信息再次确认是否真的需要删除这些信息;6、删除后返回到主页面菜单函数; 一个删除功能嵌套调用了这么多函数,假如在某个函数中出错了(或者我在第5步取消删除),又要一层层的返回。幸好Linux中提供了se原创 2015-02-28 11:35:21 · 1599 阅读 · 0 评论 -
排序算法之 快速排序 及其时间复杂度和空间复杂度
基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 我看了下网上有些bolg写排序算法,有的是理解错误了;有的呢是太过于复杂;还有的呢就干脆是用临时数组,而不是就地排序。当然我的也并没有多好,只是提够一种思路;原创 2015-03-11 14:48:20 · 79136 阅读 · 10 评论 -
单目录下多文件 makefile编写
makefile很久就接触过了,但是一直没怎么深入的去学习和总结;在项目中我也只是看看makefile或者修改部分语句,全部自己动手写的话还真没有;知识在于沉淀,这句说的非常好,所以现在把自己理解的东西,记录下来,以便后面查阅; 这篇blog要分享的是在单目录下多文件的makefile编写,首先说明当前目录下有多少文件:fun.h fun.c main.c makefil原创 2015-04-01 16:04:15 · 2773 阅读 · 0 评论 -
多目录下多文件 makefile编写
前面已经分享了单目录项下多文件的makefile的编写,现在来看看多目录下多文件makefile的编写; 在做项目时,一般文件都会分几个目录来存放;基本的是 include/ bin/ src/ obj/ lib/ tools/,这几个文件;我先说下我的文件存放目录,用ls -R可以查看到所有文件:./include/common.h ./src/main.c .原创 2015-04-01 17:40:23 · 10230 阅读 · 1 评论 -
全面解析C语言中可变参数列表
全面解析c语言中可变参数列表问题:1、大众版:大家习惯的使用方式;2、真实版:真正的使用方式;3、实际原理:具体原理,本质;4、自己实现可变参数列表:理解本质后,自己用自己的方法来实现可变参数列表;5、可变参数列表缺陷:可变参数列表中存在的一些缺陷,以及提供的修改思路和方案。原创 2015-02-11 15:27:15 · 10357 阅读 · 2 评论 -
用c++写的简易学生通讯录
学生通讯录系统需求:1、学生通信录信息包括:姓名、学号、年龄、性别、家庭住址、联系电话、寝室号等信息;2、系统以菜单方式工作,使之能提供以下功能:a、学生通信录信息的输入;b、学生的通信录信息删除和修改;c、学生的通信录信息查询和统计功能;d、学生的通信录信息输出显示;e、而且数据都保存在内存中;原创 2015-02-05 17:09:01 · 14831 阅读 · 4 评论 -
linux c删除文件中指定内容行或指定行
1、增加个临时文件;把源文件内容逐个字节或者逐行读取出来,然后修改或者丢弃,放到临时文件中,当把源文件中所有内容过滤后,再把临时文件全部覆盖回源文件;2、读取到内存中修改;把整个文件读取到内存中,然后修改,再覆盖回到源文件;我们应该怀疑下,为什么 shell 命令可以很方便的删除、修改文件内容,这绝对不会有临时文件产生,也不会占用多大内存,或者可以说占用的内存不会随着文件的大小而改变?原创 2017-04-16 00:16:37 · 15870 阅读 · 1 评论