自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 makfile一些常用方法

Makefile有三个非常有用的变量。分别是$@,$^,$<代表的意义分别是:$@--目标文件,$^--所有的依赖文件,$<--第一个依赖文件。如果我们使用上面三个变量,那么我们可以简化我们的Makefile文件为:# 这是简化后的Makefilemain:main.o mytool1.o mytool2.ogcc -o $@ $^main.o:main.c ...

2019-06-12 15:05:24 217

原创 单链表反转之非递归

整体思路是这样的,在一个完整的链表之外附加三个节点,代码如下:#include<stdio.h>#include<stdlib.h>typedef struct node{ int data; node* next;}* pnode;void CreateList(struct node* &head, int i) /...

2019-03-27 23:15:23 189

原创 linux上的socket编程,server和client小栗子

话不多说,上代码。client端代码:#include <stdio.h>#include <string.h>#include <stdlib.h>#include <unistd.h>#include <arpa/inet.h>#include <sys/socket.h>#define BUFSIZ...

2019-03-24 18:24:58 1187

转载 通过 GDB 调试理解 GOT/PLT

关于 Linux 中 ELF 文件格式可参考详细文档《ELF_Format》,本文仅记录笔者理解GOT/PLT的过程。GOT(Global Offset Table):全局偏移表用于记录在 ELF 文件中所用到的共享库中符号的绝对地址。在程序刚开始运行时,GOT 表项是空的,当符号第一次被调用时会动态解析符号的绝对地址然后转去执行,并将被解析符号的绝对地址记录在 GOT 中,第二次调用同一符号...

2019-03-01 16:40:48 3286 1

转载 mov eax,dword ptr fs:[0] 指令

FS寄存器指向当前活动线程的TEB结构(线程结构) 偏移 说明000 指向SEH链指针004 线程堆栈顶部008 线程堆栈底部00C SubSystemTib010 FiberData014 ArbitraryUserPointer018 FS段寄存器在内存中的镜像地址020 进程PID024 线程ID02C 指向线程局部存储指针030 PEB结构地址(进程结构)0...

2018-12-14 15:44:50 2924

原创 ubuntu16.04 安装gcc 7.3.0

我尝试过用编译的方法,比较麻烦,所以我找到下面的方法,直接从工具链源里安装:sudo add-apt-repository ppa:ubuntu-toolchain-r/testsudo apt-get update sudo apt-get install gcc-7然后是配置指令,优先级可以自己定:sudo update-alternatives --install /usr/...

2018-10-22 16:46:50 7621

转载 __asm__ __volatile__内嵌汇编用法简述

__asm__ __volatile__内嵌汇编用法简述 在阅读C/C++原码时经常会遇到内联汇编的情况,下面简要介绍下__asm__ __volatile__内嵌汇编用法。因为我们华清远见教学平台是ARM体系结构的,所以下面的示例都是用ARM汇编。带有C/C++表达式的内联汇编格式为:__asm__ __volatile__("Instruction List" : Output : I...

2018-08-16 17:34:58 541

转载 do {...} while (0) 在宏定义中的作用

如果你是一名C程序员,你肯定很熟悉宏,它们非常强大,如果正确使用可以让你的工作事半功倍。然而,如果你在定义宏时很随意没有认真检查,那么它们可能使你发狂,浪费N多时间。在很多的C程序中,你可能会看到许多看起来不是那么直接的较特殊的宏定义。下面就是一个例子: 1 2 #define __set_task_state(tsk, state_value)      ...

2018-08-07 15:54:20 107

转载 C/C++ 混合编程 互相调用

网上这方面介绍的不少,但是有点鱼龙混杂,对初学者而言,信息量太大,反而不容易直接找到自己想要并且正确的,现将比较好的资料整理下,并附上源代码,供初学者参考以及自己后期使用。两个推荐的原文地址,通俗点的: 1.深入理解C/C++混合编程 2.extern “c”用法解析C中想调用C++中的成员函数(包括虚函数),则需要提供一个简单的包装(wrapper),参考: 1.C代码中如何调用C...

2018-07-29 15:27:04 183

转载 在Windows下编写的代码,实时在Linux下编译

方法一: 如何实现在Windows7下编写Linux程序,写完程序以后,不用拷贝文件,直接在Linux(RHEL6.5)机器上编译最新的代码。 1.首先将Windows的代码文件夹设置为共享文件夹:   2.在RHEL6.5上,利用mount命令把Win7下的文件夹给mount到本地的一个文件夹 其中192.168.59.1是Win7的OS,VMTo...

2018-07-26 14:28:58 4371

转载 C和C++混合编程(__cplusplus 与 external "c" 的使用)

第一种理解比如说你用C++开发了一个DLL库,为了能够让C语言也能够调用你的DLL输出(Export)的函数,你需要用extern "C"来强制编译器不要修改你的函数名。通常,在C语言的头文件中经常可以看到类似下面这种形式的代码:#ifdef __cplusplusextern "C" {#endif/**** some declaration or so *****/#if...

2018-07-24 10:26:15 332

转载 编译器 cc、gcc、g++、CC 的区别

gcc 是GNU Compiler Collection,原名为Gun C语言编译器,因为它原本只能处理C语言,但gcc很快地扩展,包含很多编译器(C、C++、Objective-C、Ada、Fortran、 Java),可以说gcc是GNU编译器集合。g++ 是C++编译器。cc 是 Unix系统的 C Compiler,一个是古老的 C 编译器。而 Linux 下 cc 一般是一个符号...

2018-07-24 10:11:02 1600

转载 HTTP请求模型和头信息参考

转载:http://www.cnblogs.com/riky/archive/2007/04/09/705848.htmlHTTP请求模型一、连接至Web服务器一个客户端应用(如Web浏览器)打开到Web服务器的HTTP端口的一个套接字(缺省为80)。例如:http://www.myweb.com:8080/index.html在Java中,这将等同于代码:Soceet socke...

2018-07-17 21:59:53 210

转载 C++重写(覆盖)、重载、重定义(遮蔽)、多态的区别

转载自:https://www.cnblogs.com/DannyShi/p/4593735.html1 重写(覆盖)override  override是重写(覆盖)了一个方法,以实现不同的功能。一般用于子类在继承父类时,重写(覆盖)父类中的方法。函数特征相同,但是具体实现不同。重写需要注意:被重写的函数不能是static的,必须是virtual的重写函数必须有相同的类型,名称和参数列表重写函数...

2018-07-13 12:08:25 416

转载 浅析static,const,inline,define的存在价值

参见:http://blog.sina.com.cn/s/blog_4c7fa9dd01000agj.html一 static1) 产生背景引出原因:函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,大家知道,函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一个问题: 如果想将函数中此变量的值保存至下一次调用时,如何实现?最容易想到的方法是定义一个全局的变量,但定...

2018-07-12 17:37:29 201

原创 记一次git使用错误解决方法

如图,我push一直报错,查了一下别人的解决方法,输入:git pull --rebase origin master进行代码合并,然后再重新提交push。

2018-07-10 20:20:14 904

原创 二叉树的三种递归遍历

#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt;#define elemTpye inttypedef struct BitNode{ elemTpye data; struct BitNode *lchild,*rchild;}BitNode,*pBitNode;void CreateBTree(pBitNode b){ b-&gt;data=...

2018-07-09 15:27:17 576

原创 快速排序降序排序算法

#include &lt;stdio.h&gt;/* 快排降序排序 *///参数 l为数组的左下标,r为排序数组的右下标,void quick_sort(int a[],int l,int r){ int i=l,j=r; int A=a[l]; while(i &lt; j) { while(i &lt; j &amp;&amp; A &gt; a[j]) { j--; } if(i...

2018-05-22 19:06:26 4903

转载 mips符号位扩展和无符号位扩展

MIPS32 指令集架构中,经常会有指令需要将其中的立即数进行符号扩展,或者无符号扩展,一般都是都是将n位立即数扩展为32位。无符号扩展:直接将扩展后的数据的高(32-n)位置为0。符号扩展:将扩展后的数据的高(32-n)位置为立即数的最高位。16位立即数0x80000x1000符号扩展0xFFFF80000x00001000无符号扩展0x000080000x00001000版权声明:本文为博主原...

2018-05-03 18:22:38 6169

转载 深入理解C++中的explicit关键字

深入理解C++中的explicit关键字[email protected]://blog.csdn.net/kezunhai         C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式)。      ...

2018-04-27 16:12:02 179

原创 1009. 说反话 (20)

给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用1个空格分开,输入保证句子末尾没有多余的空格。输出格式:每个测试用例的输出占一行,输出倒序后的句子。输入样例:Hello World Here I C

2018-02-07 11:21:39 125

原创 1006. 换个格式输出整数 (15)

让我们用字母B来表示“百”、字母S表示“十”,用“12...n”来表示个位数字n(输入格式:每个测试输入包含1个测试用例,给出正整数n(输出格式:每个测试用例的输出占一行,用规定的格式输出n。输入样例1:234输出样例1:BBSSS1234输入样例2:23输出样例2:SS123#includeint main(){  i

2018-02-06 23:33:49 110

原创 1008. 数组元素循环右移问题 (20)

一个数组A中存有N(N>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(M>=0)个位置,即将A中的数据由(A0A1……AN-1)变换为(AN-M …… AN-1 A0 A1……AN-M-1)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?输入格式:每个输入包含一个测试用例,第1行输入N ( 1=0);第2行输入N个整数

2018-02-06 21:35:58 149

原创 1007. 素数对猜想 (20)

让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数。显然有 d1=1 且对于n>1有 dn 是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意正整数N (5),请计算不超过N的满足猜想的素数对的个数。输入格式:每个测试输入包含1个测试用例,给出正整数N。输出格式:每个测试用例的输出占一行,不超过N的满足猜想的素数对的个数。

2018-02-05 23:38:56 102

原创 1004. 成绩排名 (20)

读入n名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。输入格式:每个测试输入包含1个测试用例,格式为 第1行:正整数n 第2行:第1个学生的姓名 学号 成绩 第3行:第2个学生的姓名 学号 成绩 ... ... ... 第n+1行:第n个学生的姓名 学号 成绩其中姓名和学号均为不超过10个字符的字符串,成绩为0到100之间的一个整数,这

2018-02-04 21:43:28 139

原创 1002. 写出这个数 (20)

读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。输入样例:1234567890987654321123456789输出样例:yi san wu#inc

2018-02-04 15:28:44 108

原创 1001. 害死人不偿命的(3n+1)猜想 (15)

卡拉兹(Callatz)猜想:对任何一个自然数n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把(3n+1)砍掉一半。这样一直反复砍下去,最后一定在某一步得到n=1。卡拉兹在1950年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证(3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学

2018-02-02 21:47:09 213

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除