Commit bbb5301a authored by ouuan's avatar ouuan
Browse files

👌 update basic.md

parent 6283cc3f
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -15,6 +15,8 @@ int main() {
??? note "什么是 include?"
     `#include` 其实是一个预处理命令,意思为将一个文件“放”在这条语句处。也就是说,在编译时,编译器会“复制” `iostream` 头文件中的内容,“粘贴”到 `#include <iostream>` 这条语句处。这样,你就可以使用 `iostream` 中提供的 `std::cin``std::cout``std::endl` 等对象了。
    
    如果你学过 C 语言,你会发现 C++ 中的头文件一般都不带 `.h` 后缀,而那些 C 语言中的头文件 `xx.h` 都变成了 `cxx`,如 `stdio.h` 变成了 `cstdio`

    一般来说,应当根据你需要使用的 C++ 内置的函数、对象来确定你要 `#include` 哪些头文件。但如果你 `#include` 了多余的头文件,也几乎不会造成什么影响。

    可以 `#include` 自己写的头文件吗?答案是,可以。
@@ -143,6 +145,8 @@ int main() {
??? note "什么是 \n?"
     `\n` 是一种 **转义字符** ,表示换行。
    
     转义字符用来表示一些无法轻易输入的字符,如由于字符串字面值无法换行而无法输入的换行符,由于表示字符串字面值的开头结尾而无法输入的引号,由于表示转义字符而无法输入的反斜杠。
    
    常用的转义字符还有:

    1. `\t` 表示制表符。
@@ -161,7 +165,7 @@ int main() {

在 C++ 中,所有空白字符(空格、制表符、换行),多个或是单个,都被视作是一样的。(当然,引号中视作字符串的一部分的不算。)

因此,你可以自由地使用任何码风(除了行内注释、字符串字面值与预处理命令必须在单行内),例如:
因此,你可以自由地使用任何码风(除了行内注释、字符串字面值与预处理命令必须在单行内),例如:

```cpp
/* clang-format off */
@@ -232,7 +236,7 @@ int main() {
}
```

在 C++ 中,使用宏是不被推荐的。常量应当使用 `const` 限定符声明,宏应当使用函数代替。
使用 `#define` 是有风险的,因此应谨慎使用。较为推荐的做法是,常量使用 `const` 限定符声明,宏使用函数代替。

但是,在 OI 中, `#define` 依然有用武之处: