/blog/images/avatar.webp

Hello World

Astyle 配置使用

Astyle 工具下载


Astyle 参数详解

括号类型

default brace style

默认采用大括号样式,开口大括号不变,闭合大括号将与上一行断开。

–style=allman / –style=bsd / –style=break / -A1

int Foo(bool isBar)
{
    if (isBar)
    {
        bar();
        return 1;
    }
    else
        return 0;
}

–style=java / –style=attach / -A2

int Foo(bool isBar) {
    if (isBar) {
        bar();
        return 1;
    } else
        return 0;
}

–style=kr / –style=k&r / –style=k/r / -A3

int Foo(bool isBar)
{
    if (isBar) {
        bar();
        return 1;
    } else
        return 0;
}

–style=stroustrup / -A4

int Foo(bool isBar)
{
    if (isBar) {
        bar();
        return 1;
    }
    else
        return 0;
}

在 Keil 中的使用


C++11 标准容器使用

容器的定义

在数据存储上,有一种对象类型,它可以持有其它对象或指向其它对像的指针,这种对象类型就叫做容器。


容器的分类

  1. 顺序容器

顺序容器是一种各元素之间有顺序关系的线性表,是一种线性结构的有序集合。这种顺序不依赖于元素的值,而是与元素加入容器的顺序相对应。顺序容器提供控制元素存储和访问顺序的能力。

力扣142. 环形链表

力扣142. 环形链表 II

给定一个链表的头节点 head,返回链表开始入环的第一个节点。如果链表无环,则返回 null

如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos-1,则在该链表中没有环。

酒的分类

酒的分类 🍶

白酒按香型分类有十二种。


浓香型

浓香型白酒的执行标准:GB/T 10781-2006。

浓香型白酒:浓香型白酒以四川泸州老窖、五粮液位典型代表,也称为沪香型酒。

浓香型白酒的生产工艺采用泥土老窖为发酵窖,以高粱为主要原料。

日常购物选择

什么是执行标准号

产品执行标准是指反映质量特性的全方位产品标准,包括国家标准、行业标准、地方标准和企业标准。

执行标准号构成

标准代号 标准顺序号 - 标准发布年号

其中,标准代号有国家标准 (GB)、行业标准、地方标准 (DB)、企业标准 (Q)、推荐 (T)。

adb 设备无法识别

设备没有权限

执行 adb devices 命令输出

List of devices attached
3ed62e70        no permissions

查看 USB 设备

执行 lsusb 命令输出

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 094: ID 17ef:6050 Lenovo 
Bus 001 Device 124: ID 05c6:901d Qualcomm, Inc. -> 新增 usb 设备
Bus 001 Device 002: ID 060b:7a03 Solid Year 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

配置 USB 设备权限

修改 /etc/udev/rules.d/android.rules 文件内容

Android 安装 APK

adb 命令安装

  • 查看当前设备已安装包名
adb shell pm list packages
  • 安装 APK
adb install -r app-debug.apk
  • 卸载 APK
adb uninstall com.test.demo

pm 命令安装

先用 adb 命令将安装包推到机器中

Android 打包 aar 并集成

Android 打包 aar

  1. 运行编译命令
./gradlew build

Gradle 本地集成 aar

  1. 将生成的 aar 放到 app/libs 目录下

  2. 修改 app/build.gradle 文件

android {
    ...
    repositories {
        flatDir {
            dirs 'libs'
        }
    }
}

dependencies {
    ...
    implementation(name:'aar_name', ext:'aar')
}
  1. 重新编译 app

Gradle 迁移 Maven 构建

  1. 修改 app/build.gradle 文件
android {
    ...
    repositories {
        maven {
            url 'https://nexus2.com/repository/maven/'
        }
    }
}

dependencies {
    ...
    implementation 'com.demo:demolib:1.0.0-20220211.010237-47@aar'
}
  1. 重新编译 app

git 命令详解

简单介绍

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

Git 与常用的版本控制工具 CVS、Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

git 使用和配置

Ubuntu 安装 git 命令

apt-get install git

git 配置文件

git 配置文件有三个:

  1. /etc/gitconfig 是系统级配置文件,使用 git config --system 命令进行修改。
  2. ~/.gitconfig~/.config/git/config 是用户级配置文件,使用 git config --global 命令进行修改。
  3. local_dir/.git/config 是仓库级配置文件,使用 git config --local 命令进行修改。

设置用户信息

$ git config --global user.name "username"
$ git config --global user.email username@example.com

设置 git 默认编辑器

git config --global core.editor emacs

JDK 导入 CA 证书

显示的错误信息

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

导致这个错误的原因是没有有效的证书,因此导入相应的证书就可以正常访问了。

证书可以通过网站 -> Certificate -> Details -> Export 获取。

Ubuntu 创建新用户账户

创建新用户账户

sudo useradd -s /bin/bash -m -G sudo test
  • -s /bin/bash: 将 /bin/bash 设置为新账户的登录 shell
  • -m: 创建用户的主目录
  • -G sudo: 确保用户可以使用 sudo

设置新用户账户密码

sudo passwd test

删除用户账户

userdel -r test
  • -r: 删除用户主目录

软件工程

一、软件过程

软件过程的概念

软件过程是指工作产品构建时所执行的一系列活动、动作和任务的集合.

软件过程是指软件整个生命周期,从需求获取、需求分析、设计、实现、测试、发布和维护一个过程模型.

计算机系统基础

一、处理器体系结构

CPU中的时序电路

组合电路和时序电路是什么,它们有什么区别

  • 组合电路:将逻辑门组合成一张网,所构成的计算块
  • 时序电路:逻辑门电路和反馈逻辑回路或器件(寄存器)组成

核心区别是:时序电路的输出不仅取决于当时的输入值,而且还与电路过去的状态有关;任意时刻的输出仅仅取决于该时刻的输入,与电路原来的状态无关。

数据结构与算法分析

一、栈(Stack)、队列(Queue)和向量(Vector)

链表

单链表

双向链表

环形链表

带哨兵节点的链表

栈的基本概念

栈(stack)是限制插入和删除只能在一个位置上进行的表,该位置是表的末端,叫作栈的顶(top).栈也叫做LIFO(后进先出)表.