自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Makefile从入门到放弃(四)

Makefile中的环境变量及变量传递

2022-08-30 23:57:31 932

原创 Makefile从入门到放弃(三)

Types of Prerequisites in Makefile

2022-08-26 23:36:49 132

原创 Makefile从入门到放弃(二)

自定义Make函数在makefile中可以使用define关键字来支持自定义函数;语法规则define func echo $(0) $(1)endef注:$(0)默认是函数名,从$(1)开始为函数参数;用法示例PRINTF_COLOR_FRONT_BLACK = "\033[0;30m"PRINTF_COLOR_FRONT_HIGHT_BLACK = "\033[1;30m"PRINTF_COLOR_FRONT_RED = "\033[0;31m"PRINTF_COLOR

2022-05-17 23:56:14 135

原创 Makefile从入门到放弃(一)

Makefile1MAKE 是自动化编译工具,只要支持命令行编译程序的,都可以使用MAKE工具。MAKE主要是使用在C/C++上,在编译大型程序时,能指定编译特定的模块,并能自定义编译方式;Makefile中指定了MAKE工具的编译规则。例如:是编译某一个模块,还是编译整个工程。Makefile像一个脚本文件,MAKE通过读取Makefile脚本文件里的内容,来执行相应的操作;MAKE执行的操作并不限制在编译程序,可以执行某一命令或程序。C/C++编译器编译的流程2预处理在预编译阶段,编译器

2021-04-05 19:31:05 328

原创 一个简单的命令行处理程序

自定义的命令行处理程序 --DEMO版设计思路:将命令行参数全部添加到链表,在链表中处理相关的命令#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <direct.h>#define BUFF_MAX 512typedef enum __CMDLIST{ CMD_NULL = -1, CMD_00, C

2020-06-30 23:07:12 487

原创 C语言杂记——文件操作

文件操作有关文件操作的函数fopen():作用:打开一个文件,并返回文件指针函数原型:FILE* fopen(const char * _Filename,const char * _Mode);fclose():作用:关闭文件函数原型:int fclose(FILE * _File);fscanf():作用: 格式化读取文件中数据函数原型:int fscanf(FILE * _File, const char * _Format, ...);fprintf():

2020-06-30 22:37:35 150

原创 C++笔记(十二):C++命名空间

命名空间在编写代码的时候,我们写一些函数,已经存在了,但我们又不想重新给它命名。使用命名空间来区分所使用的变量、函数、类,把名字相同的变量放在不同的命名空间里面,在调用的时候,声明它的命名空间,编译器就能对应的变量。命名空间的作用:方便管理资源;防止程序中出现名字冲突;防止全局声明污染;命名空间的成员:变量;类、结构体;命名空间;数据类型;函数命名空间的声明:na...

2020-02-21 13:28:48 125

原创 C++笔记(十一):C++异常处理

异常处理异常是程序在执行期间产生的问题。C++ 异常是指在程序运行时发生的特殊情况,比如尝试除以零的操作。异常提供了一种转移程序控制权的方式。C++ 异常处理涉及到三个关键字:try、catch、throw。throw: 当问题出现时,程序会抛出一个异常。通过使用 throw 关键字来完成的,抛出的异常可以是整数、字符串、类。catch: 在您想要处理问题的地方,通过异常处理程序捕获异常...

2020-02-20 22:25:24 93

原创 C++笔记(十):C++友元

友元通常情况下,我们不能随意使用类内部的成员。但在某一些情况下,我们又需要去访问类成员。将函数或类定义成友元,就可以使用类的成员。不管是 public、protected还是private,友元都可以使用。虽然友元的声明在类内部,但友元不属于类成员。友元可以是某一个类、类成员函数、全局函数;友元是让其它不属于本类的成员(其它类、其它类成员函数、全局函数)成为类的成员而具备了本类成员的属性;友...

2020-02-20 20:28:51 145

原创 C++笔记(九):C++虚函数

虚函数虚函数是在基类中使用关键字virtual声明的函数。在派生类中重新定义基类中定义的虚函数时,会告诉编译器不要静态链接到该函数。纯虚函数在基类中定义虚函数,以便在派生类中重新定义该函数更好地适用于对象,但是在基类中又不能对虚函数给出有意义的实现,这个时候就会用到纯虚函数。纯虚函数的声明:virtual void eat() = 0;使用虚函数/纯虚函数的意义:实现C++多态性...

2020-02-20 16:06:42 170

原创 C++笔记(八):C++动态绑定

动态绑定在C++中,若派生类中有与基类重名的函数,则使用派生类的;这叫函数覆盖;补充一点:函数重载是发生在不同函数之间;函数覆盖是发生在基类与派生类之间;例:#include <iostream>class Animal{public: Animal() { std::cout << "animal init" <&lt...

2020-02-20 14:35:56 142

原创 C++笔记(七):C++继承

继承C++中通过继承机制,可以利用已有的数据类型来定义新的数据类型。所定义的新的数据类型不仅拥有新定义的成员,而且还同时拥有旧的成员。这使得维护和创建一个应用程序变得比较容易。基类&派生类一个类可以派生自一个或多个基类。定义一个派生类,我们使用一个类派生列表来指定基类。形式如下:class derived-class: access-specifier base-class例:...

2020-02-20 13:25:43 215

原创 C++笔记(六):C++重载操作符

重载操作符在C++中,我们可以重载函数,也可以重载操作符;在C++中大部分的操作符是可以重载的,只有5个不可以;可以重载的操作符有42个:不可以重载的操作符有5个:.:成员访问运算符.*, ->*:成员指针访问运算符:::域运算符sizeof:长度运算符?::条件运算符#: 预处理符号重载操作符的注意事项:有四个操作符必须定义为类成员函数: =、[]、()、-&...

2020-02-19 20:50:54 357

原创 C++笔记(五):static类成员

static类成员在设计一个类的时候,我们希望某些属性是所有对象共用的,而不是不同对象有不同地属性。那我们可以使用static关键字进行声明,使这个类成员变成静态成员。例如:存在银行里的钱,都有相同的利息,不会因为账户的不同而利息不同。我们在生成银行账户这个对象时,此时就希望它的利息这个成员是共用的。static关键字的特点:实现多个对象资源共享;在程序运行时,带有static关键字的...

2020-02-19 20:16:29 121

原创 C++笔记(四):深复制/浅复制/智能指针

深复制/浅复制/智能指针深复制/浅复制类的定义:class Dog {public: Dog(const Dog &str); void SetAge(int age); void ShowAge(); void SetName(char *name); void ShowName(); Dog(char *name,int age); Dog(); virt...

2020-02-19 19:35:03 1658 2

原创 C++笔记(三):C++类

类C++中的类包含:类成员、构造函数、析构函数、成员函数以及它们的访问属性public、private、protected。类成员缺省private。类的定义:class Dog {public: Dog(const Dog &str); void SetAge(int age); void ShowAge(); void SetName(char *name); v...

2020-02-14 14:38:01 317

原创 C++笔记(二):C++数据类型

C++基本数据类型C++字符串在C++程序中有两种类型的字符串:C风格字符串string类型字符串C风格字符串在C++程序中,依然可以像C语言一样使用字符串,例: char s[] = "Hello string\n"; or char s[14] = {'H','e','l','l','o',' ','s','t','r','i','n','g','\n','\0'};...

2020-02-13 13:04:31 136

原创 C++笔记(一):C++入门

1、C++简介C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计。C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。C++特性C++相较于C,最主要的区别是引入...

2020-02-13 12:27:28 251

原创 批处理学习(一)

批处理学习CMD命令基础关机、重启、注销、休眠、定时关机:shutdown /s重启:shutdown /r注销:shutdown /l休眠:shutdown /h /f取消关机:shutdown /a定时关机:shutdown /s /t 7200(7200 秒后关机)目录操作显示、切换目录:cd cd D:\显示目录中的文件:dir显示目录结构: tree文件...

2019-12-01 17:31:09 502

原创 C语言杂记——类型转换

数据类型之间的强制转换数据类型数据类型的分类有:简单类型、结构类型、指针类型三种。简单类型:int,folat,double,char,void,enum结构类型:数组,struct,union,class指针类型:*强制转换强制转换分为显式转换和隐式转换,一般隐式转换回出现在赋值语句中和数值计算中,而显示转换比较明显,在转换是直接(转换类型)val即可。在进行隐式转换时,要...

2019-10-24 23:59:18 135

原创 C语言杂记——结构体

结构体我们在处理对象时或是一组数据时,如在处理人的年龄、家庭成员或是学生的成绩。需要创建大量的变量去描述相关事务,我们必须通过一个索引将数据项关联起来。关键字struct能定义各种类型的变量集合,称为结构。定义一个结构体Horse,并创建一个用户Dobbin,如下所示:struct Horse{ int age; int height; char name[20]; char fa...

2019-08-23 01:11:14 130

原创 C语言杂记——函数(三)

递归函数函数调用自己称为递归;递归在程序设计中并不常见。递归在某一些情况下,是一个效率很高的技巧;#include <stdio.h>unsigned long factorial(unsigned long);int main(void){ unsigned long number = 0L; printf("\nEnter an inteager value:")...

2019-07-28 21:23:09 150

原创 C语言杂记——函数(二)

函数指针指针的操作就是对内存的操作或是说对内存所包含的值进行操作。函数的内存地址存储了函数开始执行的位置(起始地址)。如果函数通过指针来调用,必须提供变元的类型和个数,以及返回值。声明函数指针int (*pfunction)(int);使用函数指针int sum(int ,int);int (*pfun)(int ,int ) = sum;int result = pfun...

2019-07-12 12:37:52 212

原创 C语言杂记——函数(一)

函数一个完整的函数是由函数头和函数体组成。函数头定义了函数名称、函数参数和函数返回值的类型。函数体决定函数对传给它的值执行什么操作。Return_type Function_name(Parameted - separated by commas){ Statements; }函数体内可以没有语句,但大括号必须有。如果函数体内没有语句,那返回类型必须是void。void类型表示“不...

2019-07-06 21:38:55 216

原创 C语言杂记——程序结构

程序结构C语言程序是可以切割成许多小的函数,其中最主要的是main()函数。在设计程序时,时常会调用库函数,如printf()和scanf(),说明了一个函数可以调用另一个函数,完成特定的工作。在调用函数的内部又可以继续调用新的函数或本身。变量的作用域和生存期在前面的所有例子中,都是在main()函数体的起始处声明程序的变量。实际上。我们可以在任何代码块中定义变量。而变量只存在于定义它们...

2019-07-06 00:19:40 141

原创 C语言杂记——动态内存

动态内存c语言还有一个功能:动态内存分配,它依赖指针的概念,为在代码中使用指针提供了很强的激励机制,它允许在执行程序时动态内存分配。在CPU内部存在堆栈,堆区域用于动态分配内存,由程序员完全掌控。栈区域主要保存函数参数和局部变量。在执行完该函数后,存储参数和局部变量的存储空间会完全释放。动态内存分配:malloc()函数在运行时分配内存最简单的标准函数是malloc(),需要调用stdli...

2019-07-03 21:34:44 174

原创 C语言杂记——指针(二)

二级指针A(即B的地址)是指向指针的指针,称为二级指针,用于存放二级指针的变量称为二级指针变量.根据B的不同情况,二级指针又分为指向指针变量的指针和指向数组的指针。 int str = 10; int *pstr = &str; int **PPstr = &str;二级指针与二维数组 #include <stdio.h> int ...

2019-07-03 17:11:44 133

原创 C语言杂记——指针(一)

一、指针可以存储地址的变量称为指针,存储在指针中的地址通常是另一个变量。指针的声明 int *p = NULL或者是int* p = &num;。使用间接运算符*可以访问指针所指的变量值。1、指针与const关键字const是一个C语言(ANSI C)的关键字,具有着举足轻重的地位。它限定一个变量不允许被改变,产生静态作用。使用const在一定程度上可以提高程序的安全性和可...

2019-07-03 11:49:29 174

空空如也

空空如也

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

TA关注的人

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