- 博客(15)
- 收藏
- 关注
原创 makefile学习笔记2
1.makefile书写规则: 规则包括两个部分:依赖关系和生成目标的方法makefile中第一条规则中的目标将被确立为最终目标,其他的目标都是被这个目标所连带出来的,如果第一条规则中的目标有很多个,那么,第一个目标灰成为最终目标。 main.o:main.c main.hcc -g main.c //说明如何生成main.o
2017-04-27 15:13:33
428
原创 makefile学习笔记1
Makefile的作用: makefile关系到整个过程的编译规则,makefile制定了一系列规则来指定哪些文件先编译,哪些文件后编译,哪些编译需要重新编译,甚至进行更复杂的功能操作,makefile就像一个shell脚本一样,也可以执行操作系统的命令,也就是实现“自动化编译”,一旦写好,只需要一个make命令,整个工程就会完全自动编译,极大的提高了软件开发的效率。首先了解程序的编译和链接。编译
2017-04-27 15:10:08
417
原创 Python实现冒泡排序,选择排序,插入排序
1.Python实现冒泡排序:#方法1array=[4,5,2,3,8,9,1]def bubbleSort(L): sort=True while sort: sort=False for i in range(len(L)-1): if L[i]>L[i+1]: temp=L[i+1]
2016-08-23 17:08:47
1033
原创 C++文件中通过动态链接库调用C文件
首先是几个用来加载动态库文件的函数的介绍:#include void *dlopen(const char *filename, int flag);//以指定模式打开指定的动态连接库文件,并返回一个句柄给调用进程 指定模式: RTLD_LAZY 暂缓决定,等有需要时再解出符号 RTLD_NOW 立即决定,返回前解除所有未决定的符号。 char *dlerr
2016-07-29 21:07:19
811
原创 C++的继承相关知识
本文章是看C++Primer这本书及网上查的资料对C++继承做了一个简单的总结:OOP(Object-oriented pragramming)面向对象程序设计的核心思想是:数据抽象,继承和动态绑定。通过使用数据抽象可以将类的接口与实现分离,利用继承可以定义相似类型的关系的建模。通过动态绑定,可以一定程度上忽略相似类型的区别,而以统一方式使用它们的对象。继承:通过继承联系在一起的类构成
2016-07-29 09:53:59
411
原创 C语言的编译原理及过程
前几天有个朋友问我关于C语言的编译原理和编译的过程,当时我也没有说明白,今天特意在书上和网上查阅资料,简单的总结了一下关于C语言的编译原理及过程。 集成开发环境是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器,调试器和图形用户界面工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。 编辑器:编写代码的一些窗口。 编译
2016-07-13 10:08:21
13430
1
原创 C语言实现归并排序
归并排序 时间复杂度:O(nlogn) 空间复杂度:O(n) 稳定性:稳定 实现原理:采用分治法(Divide and Conquer)将已有序的子序列合并,得到完全有序的序列,即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,也叫二路归并。 代码实现:采用递归方法实现#include<stdio.h>#include<stdlib.h>#define MAXS
2016-07-13 09:27:51
989
原创 c语言实现快速排序
快速排序 时间复杂度:最好时间O(nlogn) 最坏时间O(n^2) 稳定性:不稳定 快速排序不是一种稳定的排序算法,也就是说,多个相同的值的相对位置也许会在算法结束时产生变动 基本思想:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小, 然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
2016-07-12 21:32:19
3192
原创 数据结构之堆排序C语言实现
堆排序: 时间复杂度:O(nlogn) 稳定性:不稳定 实现原理:将待排序的序列构造成一个大顶堆(或小顶堆) 整个序列的最大值就是堆顶的根节点,将它移走 (就是将其与对数组的末尾元素交换,此时末尾元素就是最大值)。然后将剩余的n-1个序列重新 构成一个堆,这样就会的到n个元素中 的最大值如此反复执行,得到一个有序序列。 大顶堆:根节点是最大者 小顶堆:根节点是最小者 大顶
2016-07-12 09:44:31
3787
1
原创 System V 进程间通信(IPC)之System V 消息队列
1.System V消息队列 2.System V信号量 3.System V共享内存 这三种类型的IPC合称为System V IPC,原因是它们源自System V Unix。 IPC操作命令: ipcs -s :查看信号量 ipcs -m :查看内存映射 ipcs -q :查看消息队列 这三种IPC机制都需要使用key_t作为
2016-07-11 22:38:03
1151
原创 缓冲区,刷新缓冲区
一直不明白缓冲区,今天对缓冲区有了全面的认识。下面介绍缓冲区:1.什么是缓冲区 缓冲区又叫缓存,是内存空间的一部分。就是在存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的空间叫缓冲区。缓冲区根据其对应的是输入设备还是输出设备,分为输入缓冲区和输出缓冲区 2.缓冲区的作用 缓冲区时一块内存区,它用来在输入输出设备与cpu之间,用来缓存数据。它使得低速的
2016-05-19 23:45:21
2174
原创 浅谈对c语言中对一维数组的认识
今天复习c语言中数组的基本知识。简单的总结一下所谓数组,就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。数组是在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同
2016-05-18 23:58:00
736
原创 C语言中的静态变量和普通变量的区别
下面用代码说明:一个可执行程序包括BSS段、数据段、代码段(文本段)。bss segment ,data segment ,code/text segment①BSS(Block by Start Symbol) :通常指用来存放程序中未初化的全局变量和静态变量的一块内存区域。BSS段属于静态内存分配。 特点是:可读写的,在程序执行之前BSS段为自动清零,所以未初始的全局变
2016-05-17 23:18:18
2305
转载 HTTP 1.1状态代码及其含义
HTTP 1.1状态代码及其含义HTTP 1.1状态代码及其含义100 Continue初始的请求已经接受,客户应当继续发送请求的其余部分。(HTTP 1.1新)101 Switching Protocols服务器将遵从客户的请求转换到另外一种协议(HTTP 1.1新)200 OK一切正常,对GET和POST请求的应答文档跟在后面。201 Created 服务器已经创建
2016-03-17 19:16:46
394
原创 含有虚函数多重继承派生类内存布局
今天刚学关于c++多态,学了含有虚函数的类的内存情况。在多基类的派生类中,其中每个基类都含有虚函数,在这种情况下派生类的内存布局是怎么样的?对于多重继承,有多少基类含有与派生类同名函数虚函数,派生类中就会存在多少个虚函数表和虚函数表指针,编译器会把第一个基类的虚函数表指针存放在派生类的起始地址,把第二个基类的虚函数表指针紧挨着第一个虚函数表指针存放,一次类推,直到存放完所有基类的虚函数表指针。
2016-03-15 23:01:20
487
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人