
c-c++
HawardScut
工作啦,有时比较忙没及时回复,望见谅。
展开
-
Makefile入门
文章目录一、Makefile文件介绍二、Makefile文件的hello world编写1、编写格式2、实例二、Makefile的工作流程1、工作流程2、清除过程文件三、通配符的使用1、通配符2、实例四、Makefile变量的定义和赋值1、变量的定义与使用2、变量的赋值(1)简单赋值`:=`(2)递归赋值`=`(3)条件赋值`?=`(3)追加赋值`+=`五、目标文件的搜索(VPATH和vpath)1、VPATH2、vpath六、嵌套执行make一、Makefile文件介绍Makefile一般为Linux原创 2020-06-18 15:25:26 · 351 阅读 · 0 评论 -
vs配置依赖
环境介绍在win上搭建vs远程调试linux项目环境(gdbserver、vs的linux插件环境等)gcc/g++ 的-L和-l命令参数linux上的库文件名:lib+<库名>+.so (比如ncurses库,库文件名为ncurses,使用gcc/g++ 可直接为−lncurses )gcc/g++ 的-L和-l命令参数使用为:(1)−L<库文件所在路径>(2)−l<库名>例:−L/usr/lib ; −lncurses注意:在 /lib, /usr原创 2020-06-15 17:16:13 · 592 阅读 · 0 评论 -
虚函数和动态联编
关于虚函数(1)编译器对虚方法(virtual修饰的方法)使用动态联编,如下:Dog dog;Animal* pAnimal;pAnimal = &dog;pAnimal->eat();假如eat()方法是虚方法,则调用的是子类的eat()方法(动态联编,可以理解为基类的eat()方法是虚设的);否则(不使用virtual修饰的方法),调用的是基类的eat()方法(静...原创 2019-12-04 13:36:56 · 725 阅读 · 0 评论 -
c++内存模型和名称空间
一、头文件1. c++程序一般分为3部分:头文件、实现头文件的源文件、调用函数的源文件2. 头文件常包含的内容(1)函数原型(2)使用#define或者const定义的符号常量被声明为const的数据具有特殊的链接属性(外部/内部/无),具备的链接性为内部,其作用域为包含头文件的当前源文件(类似static,但const修饰的为常量,不可改变其值),不会出现多次定义的情况,所以可行(...原创 2019-12-03 00:42:58 · 328 阅读 · 0 评论 -
linux上构建交叉编译环境
1. 下载NDKhttps://developer.android.google.cn/ndk/downloads/2. 解压NDK,并且配置环境变量export PATH=/xxx/android-ndk-r20:$PATH3. 编译特定平台的工具链(这里是x86)(1)在NDK的build/tools目录有make-standalone-toolchain.sh 的程序让用户创建标...原创 2019-08-06 00:30:46 · 1062 阅读 · 0 评论 -
CMake 简单使用
1.介绍CMake可实现跨平台编译, 是一种优秀的编译配置工具。2.Linux下的cmake编写demo(1)建立工程目录cmakeDemo(2)编写c/c++代码main.c//main.c#include<stdio.h>int main(){ printf("hello cmake!\n"); return 0;}(3)编写CMakeList...原创 2019-08-03 21:43:22 · 446 阅读 · 0 评论 -
(二)c++调用自己编写的静态库(通过eclipse)
c++调用自己编写的静态库(通过eclipse)1.eclipse集成c++环境搭建: (1)下载安装http://www.eclipse.org/downloads/packages/ 一个静态库可以简单看成是一组目标文件(.o/.obj文件)的集合,静态库与汇编生成的目标文件一起链接为可执行文件。 (2)配置g++环境: 可以下载安装MinGW(直接下载codeblocks,里...原创 2018-05-11 15:58:59 · 1095 阅读 · 0 评论 -
(一)c++调用自己编写的静态库
c++调用自己编写的静态库1.静态库的介绍: 一个静态库可以简单看成是一组目标文件(.o/.obj文件)的集合,静态库与汇编生成的目标文件一起链接为可执行文件。2. 静态库的优缺点:(1)静态库对函数库的链接在编译时期完成,程序在运行时与函数库无关,移植方便。(2)所有相关的目标文件与牵涉到的函数库被链接合成一个可执行文件,浪费空间和资源。 3.Demo实例:prag...原创 2018-05-11 15:32:47 · 10520 阅读 · 0 评论 -
关于虚函数的总结
1.虚函数标志着多态性: 基类和派生类的关系就像父子(老子可以让儿子干事,儿子却不能总是让老子去干事)所以,派生类的指针式不能指向基类的,基类的指针却可以指向派生类,基类指针指向派生类的时候,想要调用同名的派生类函数,就必须在基类中定义成虚函数,在程序运行的时候就可以动态的指向派生类的函数了。2. 构造函数不能是虚函数: 因为,在构造函数中调用虚函数,实际执行的是父类的对应函数,因为自己还...原创 2018-03-14 12:34:33 · 418 阅读 · 0 评论 -
(一)设计模式简介
(1)常用的面向对象设计原则包括7种单一职责原则: 类的职责要单一开闭原则: 对拓展开放,对修改关闭里氏代换原则: 接受父类的地方必然可以接受子类*依赖倒置原则: 针对抽象而非具体编程接口隔离原则 使用多个专门的接口来代替一个统一的接口合成复用原则: 多用组合聚合,少用继承迪米特法则: 减少不必要的通讯(2) 23种设计模式分类...原创 2018-03-13 16:39:53 · 163 阅读 · 0 评论 -
插入排序
/** * 插入排序 * 时间复杂度:1.最好O(n);2.最坏O(n^2) * 思想:从第2个元素开始(保存当前元素的值为key),逐一往前把元素与key比较, * 如果前面元素大于key,则需要后退一位,array[i+1]=array[i]; * 把后面的元素插入 */原创 2017-10-10 23:38:57 · 187 阅读 · 0 评论 -
什么时候使用引用、什么时候使用指针
使用引用参数的主要原因有两个:程序员能修改调用函数中的数据对象通过传递引用而不是整个数据–对象,可以提高程序的运行速度 一般的原则: 对于使用引用的值而不做修改的函数:如果数据对象很小,如内置数据类型或者小型结构,则按照值传递如果数据对象是数组,则使用指针(唯一的选择),并且指针声明为指向const的指针如果数据对象是较大的结构,则使用const指针或者引用,已提高程序的效率。这样可以原创 2016-12-27 10:54:02 · 7813 阅读 · 0 评论 -
const、引用、函数调用等之间的关系
#include<iostream>#include<string>using namespace std;string version1(const string & s1,const string & s2);const string & version2(string & s1,const string & s2);const string & version3(string & s原创 2016-12-24 11:38:47 · 280 阅读 · 0 评论 -
using namespace std介绍
using namespace std 1. std表示标准命名空间的名字,所有的标准库函数都在std中进行了定义 2.作用:避免发生重命名的原创 2016-12-16 22:47:11 · 328 阅读 · 0 评论 -
getchar()的使用
1.getchar()每一次从队列中取一个字符,当队列中没有字符可取得时候,控制台便跳出来让你输入 2.fflush(stdin); //作用是清除队列 3.char ch=getchar(); //只有队列中取空才会跳出控制台让你输入,不然就直接从队列中取第一个字符给ch 例如: 输入:ABG 队列中就有ABC 只有按下,语句char ch=getchar(); 才会执行完毕,跳到原创 2016-12-16 10:42:09 · 344 阅读 · 0 评论