1.首先 添加 库 到 工程 ,路径 如下 C:\Keil\ARM\CMSIS\Lib\ARM 2.包含头文件以及在 工程里 添加 头文件 路径如下  C:\Keil\ARM\CMSIS\Include #include "arm_math.h" 3.因为 我 的 是 M3内核,因此 需要在 工程里 定义  : ARM_MATH_CM3 4.就可以 使用 其中的 算法了,详情 在  #include "arm_math.h" 文件中 参考 :使用STM32F4XX自…
今天看Martini文档,其功能列表提到完全兼容http.HandlerFunc接口,就去查阅了Go: net/http的文档,看到type HandlerFunc这部分,顿时蒙圈了.由于之前学习的时候没有关注过function types的知识点,就Google了一些文章,才算是有了个大概的了解. 从golang的官方文档得知function types的解释是这样的. A function type denotes the set of all functions with the same…
Go语言的基本类型有: bool string int.int8.int16.int32.int64 uint.uint8.uint16.uint32.uint64.uintptr byte // uint8 的别名 rune // int32 的别名 float32.float64 complex64.complex128 当一个变量被声明之后,系统自动赋予它该类型的零值: int 为 0,float 为 0.0,bool 为 false,string 为空字符串,指针为 nil 等 一.基本…
转自:https://segmentfault.com/a/1190000012329213 值类型的变量和指针类型的变量 先声明一个结构体: type T struct { Name string } func (t T) M1() { t.Name = "name1" } func (t *T) M2() { t.Name = "name2" } M1() 的接收者是值类型 T, M2() 的接收者是值类型 *T , 两个方法内都是改变Name值. 下面声明一个…
1.  在项目中实现注册成功之后,向用户发送邮件.微信提醒 package main import "fmt" type IMessage interface { send() bool } type Email struct { email string content string } func (e *Email) send() bool { fmt.Println("发送邮件提醒:", e.email, e.content) return true } ty…
总结: 1. 值类型的嵌入式字段,该类型拥有值类型的方法集,没有值指针类型的方法集 2. 指针类型的嵌入式字段,该类型拥有值指针类型的方法集,没有值类型的方法集,并且,该类型的指针类型也有值指针类型的方法集 有点绕,见案例: package main import "fmt" type Boss struct{} func (b *Boss) AssignWork() { fmt.Println("Boss assigned work") } type Manage…
Mutex 是一个互斥锁,可以创建为其他结构体的字段:零值为解锁状态.Mutex 类型的锁和线程无关,可以由不同的线程加锁和解锁. 方法 func (*Mutex) Lock func (m *Mutex) Lock() Lock 方法锁住 m,如果 m 已经加锁,则阻塞直到 m 解锁. func (*Mutex) Unlock func (m *Mutex) Unlock() Unlock 方法解锁 m,如果 m 未加锁会导致运行时错误. 注意 在一个 goroutine 获得 Mutex 后…
在使用标准库中的加锁机制时,例如我们使用std::mutex,写了如下的代码(下面的代码使用condition_variable可能更合适) std::mutex g_mtx; int g_resNum; // and how to get the resource ... // 线程1使用如下代码: { std::lock_guard<std::mutex> guard(g_mtx); // prepare the resource ... // set the resource num g…
督促读书,总结精华,提炼笔记,抛砖引玉,有不合适的地方,欢迎留言指正. 标准库vector类型初探,同一种类型的对象的集合(类似数组),是一个类模版而不是数据类型,学名容器,负责管理 和 存储的元素 相关的内存,因为vetcor是类模版,对应多个不同类型,比如int,string,或者自己定义的数据类型等. 程序开头应如下声明 #include <iostream> #include <vector> #include <string> using std::strin…
<C++ Primer 4th>读书摘要 最重要的标准库类型是 string 和 vector,它们分别定义了大小可变的字符串和集合.这些标准库类型是语言组成部分中更基本的那些数据类型(如数组和指针)的抽象.另一种标准库类型 bitset,提供了一种抽象方法来操作位的集合. 标准库string类型 有一种情况下,必须总是使用完全限定的标准库名字:在头文件中.理由是头文件的内容会被预处理器复制到程序中. #include <string> using std::string; 几种初…