C语言typedef与#define详谈
  • 2022-05-09 :添加typedef别名说明和using别名定义

一、typedef#define比较

typedef#define功能的共同点

例如:

1
#define BYTE unsigned char

表示预处理器用BYTE替换unsigned char

1
typedef unsigned char BYTE

表示编译器给类型unsigned char起了一个别名BYTE

Read more
C++ main函数处理命令行选项

一般情况下,我们定义的main函数都只有空的形参列表:

1
int main() { ... }

然而,有时我们确实需要给main函数传递实参,一种常见的情况就是用户需要设置一组选项来确定函数所要执行的操作。此时,main函数定义为:

1
int main(int argc, char* argc[]) { ... }
Read more
C++ this指针
栈的应用——括号匹配

题目描述:编写程序,判定给定表达式中的括号是否匹配,表达式中的合法括号位 “(”,“)”,“[”,“]”,“{”,“}”,括号可按任意次序嵌套使用。

输入说明:有多个表达式,输入数据第一行是表达式的数目,每个表达式占一行。

输出说明:对每个表达式,若其括号匹配则输出“Yes”,否则输出“No”。

Read more
C/C++动态数组使用

近来刷题,遇到好几道题目需要动态数组解决,现在整理一下。C/C++中动态开辟一维、二维数组很常见,也很实用。

2021/3/18 更

C中动态数组的使用

C语言使用calloc()函数/malloc()函数分配内存空间,均可用来动态申请一维数组/二维数组。

头文件:#include<stdlib.h>

calloc()函数用来动态的分配内存空间并初始化为0,其原型为:

Read more
C++拷贝构造函数和赋值运算符
C++ 11 =default 和 =delete
语义化版本控制

文章转载自:https://semver.org/lang/zh-CN/

摘要

版本格式:主版本号.次版本号.修订号,版本号递增规则如下:

  1. 主版本号:当你做了不兼容的 API 修改,
  2. 次版本号:当你做了向下兼容的功能性新增,
  3. 修订号:当你做了向下兼容的问题修正。

先行版本号及版本编译信息可以加到“主版本号.次版本号.修订号”的后面,作为延伸。

Read more
软件设计模式之单例模式

什么是单例模式?

有的时候我们需要应用程序中的某个实例在运行期间有且只能有一个实例,程序运行时没有任何方法实现创建多于一个的实例,这种情况我们称之为软件设计模式——单例模式。

比如我们软件运行时,有且只能有一个日志对象…….

Read more
Git常用命令

常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
mkdir <filename>           //创建目录  
cd <filename> //进入指定文件夹
rm <filename> //工作区删除文件
rm -rf <foldername> //工作区删除文件夹
pwd //打印当前路径
cat <filename> //查看指定文件的内容
ls -a //查看隐藏的.git文件,.git文件是git版本库,里面的stage就是暂存区
git init //将命令运行的目录变成git可以管理的仓库
git add <filename> //将指定文件从工作区添加到暂存区
git commit -m "提交说明" //将暂存区的所有文件提交到版本库,-m后面添加说明
git status //查看当前版本库状态
git log //查看历史版本记录
git log --pretty=oneline //查看历史记录,只不过一行显示更加清晰
git reflog //查看你的历史命令,可以看到历史版本的版本号,利用历史版本的版本号可以实现代码版本的回退
git diff <filename> //查看该文件的具体修改内容
git diff HEAD <filename> //查看工作区与版本库里面的最新版本的区别
git reset --hard <版本号> //回退到指定版本号的版本
git reset --hard HEAD^ //回退到上一个版本
Read more