
BIG ADD: - docker - archlinux FIX: - vim - c_cpp - string hash - linux /dev/random - thread - STL - linux - command - last OTHERS: - add antenna.md - mirrors - makefile.md
48 lines
1.2 KiB
Markdown
48 lines
1.2 KiB
Markdown
# c-cpp function
|
||
|
||
## 目录
|
||
- [extern](#extern)
|
||
- [noexcept](#noexcept)
|
||
- [重载](#)
|
||
- [often](#often)
|
||
|
||
## extern
|
||
|
||
`exterm` 表明函数在外部定义,在链接期才去查找
|
||
`extern "C"` 表明以C的方式查找外部函数
|
||
|
||
## noexcept
|
||
|
||
```cpp
|
||
void myFunction() noexcept {
|
||
// 这个函数不会抛出异常
|
||
}
|
||
```
|
||
noexcept 的一个重要用途是优化性能,特别是在移动语义中。当一个函数被标记为 noexcept 时,编译器可以更积极地优化代码
|
||
|
||
## 重载
|
||
只要特征标不同就可以重载
|
||
**特征标**:原型除去返回值都是
|
||
|
||
+ 左值:优先选择T&,如果不可用则选择const T&。
|
||
+ const左值:选择const T&。
|
||
+ 右值:优先选择T&&, else const T&
|
||
+ 字面量或临时对象:选择T&&。
|
||
|
||
## often
|
||
|
||
```
|
||
abs(x); //求x的绝对值 e.g.abs(-5)=5
|
||
fabs() //实数绝对值
|
||
exp(x); //求x的自然指数e^x e.g.exp(1)=2.718282
|
||
floor(x); //向下取整
|
||
ceil(x); //向上取整
|
||
log(x); //求实数x的自然数对数 e.g.log(1)=0
|
||
pow(x,y); //计算x^y,输出为双精度实数 e.g.pow(2,3)=8
|
||
sqrt(x); //求x的平方根 e.g.sqrt(25)=5
|
||
strlen(str);获取字符数组长度(只能用在字符数组)。
|
||
max(a,b) //两数中最大
|
||
min(a,b) //两数中最小
|
||
swap(a,b) //交换两个类型相同的变量
|
||
```
|