服务端2月18日 17:16
C语言枚举类型 enum 怎么用?有哪些实战技巧和常见坑?枚举(enum)是 C 语言用名字代替整数的机制,让代码可读性远超裸数字。编译器把枚举常量替换成对应的 int 值,默认从 0 递增,也可手动指定。
实际项目中最常见的三种用法:**状态机**(用枚举定义状态流转)、**错误码**(比 #define 更集中、调试器能显示名字)、**位标志**(每个值占一个 bit,按位或组合权限)。配合 typedef 省掉每次写 enum 的前缀,配合 switch 编译器会警告漏掉的 case——这是枚举最被低估的价值。
```c
// 位标志:一个变量表示多个开关
enum Perm {
READ = 1 << 0, // 0...服务端2月17日 13:35
Linux 启动流程是怎样的?从 BIOS 到 login 的完整过程Linux 启动分五个阶段:固件(BIOS/UEFI)→ 引导加载器(GRUB)→ 内核 → init 系统(systemd)→ 用户登录。每个阶段接力完成,任一阶段失败系统就无法启动。
## 1. 固件阶段:BIOS/UEFI
按下电源键后,CPU 执行固件(烧在主板 ROM 里的程序):
- **BIOS**(传统):POST 自检 → 扫描启动设备 → 读取第一个扇区(MBR,512 字节)
- **UEFI**(现代):POST 自检 → 读取 EFI 系统分区(ESP)里的 .efi 引导程序
UEFI 比 BIOS 快(跳过 MBR 扫描),支持 GPT 分区(超过 ...服务端2月17日 13:36
Linux 管道和重定向怎么用?| > >> 2>&1 详解管道(|)把一个命令的输出传给另一个命令做输入。重定向(> >> 2>&1)控制输出到文件还是设备。两者配合是 Linux 命令行最核心的组合能力。
## 重定向
### 标准输出重定向
```bash
ls > file.txt # 覆盖写入
ls >> file.txt # 追加写入
```
> 会清空文件再写入,>> 在文件末尾追加。新手常犯的错:用 > 覆盖了重要文件。
### 标准错误重定向
```bash
gcc main.c 2> errors.log # 只重定向错误
```
Linux 有三个标准流:stdin(0)、stdou...服务端2月17日 13:39
Linux 系统怎么备份和恢复?rsync、tar 和快照实战Linux 备份分三个层级:文件级(rsync/tar)、分区级(dd)、快照级(LVM/Btrfs)。日常用 rsync 增量备份文件,关键系统用快照,dd 只在磁盘克隆时用。
## rsync:增量备份首选
rsync 只传输变化的文件,第一次全量,之后只传差异部分:
```bash
# 本地备份到外部硬盘
rsync -avz --delete /home/user/ /backup/home/
# 远程备份到服务器
rsync -avz --delete /home/user/ user@server:/backup/home/
```
参数:-a 保留权限和时间戳,-...服务端2月17日 13:48
TailwindCSS Grid 布局怎么用?常用布局模式和响应式网格实战TailwindCSS 的 Grid 类直接映射 CSS Grid 属性——grid-cols-N 设置列数,col-span-N 设置跨列,配合响应式前缀实现不同屏幕不同布局。
## 基本网格
```html
<div class="grid grid-cols-3 gap-4">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
</div>
```
grid-cols-3 = 三列等宽,gap-4 = 间距 1rem。TailwindCSS 预设 ...服务端2月17日 13:51
TailwindCSS JIT 模式是什么?任意值语法和按需生成原理JIT(Just-In-Time)模式是 TailwindCSS v3 的默认引擎——按需生成 class,而不是预生成所有可能的组合。这让产物体积从 MB 级降到 KB 级,同时支持任意值语法。
## JIT 之前:AOT 模式
TailwindCSS v2 及以前用 AOT(Ahead-Of-Time)模式:构建时生成所有 class 组合(所有颜色 x 所有尺寸 x 所有断点),产物可能 3-5MB。然后通过 purge 删除未使用的 class。
问题:不支持任意值(text-[13px] 这种写法不工作),构建慢,purge 配置容易出错。
## JIT 模式的工作原理...服务端2月17日 14:19
TailwindCSS 是什么?和 Bootstrap 有什么区别?核心优势详解TailwindCSS 是一个 utility-first 的 CSS 框架——不提供预制的组件(如 .btn、.card),而是提供原子化的 utility class(如 .bg-blue-500、.text-center、.p-4),让你在 HTML 里组合出任何设计。
## 和 Bootstrap 的区别
Bootstrap 给你现成组件:btn-primary、card、navbar。快速但长得都一样。
TailwindCSS 给你积木块:p-4、bg-blue-500、rounded-lg。慢一点但完全自定义。
选择标准:需要快速原型用 Bootstrap,需要自定义...服务端2月17日 14:26
TailwindCSS 性能怎么优化?构建速度和产物体积优化实战TailwindCSS 的性能分两方面:开发时的构建速度和最终 CSS 产物体积。v4 已经解决了构建速度问题(Rust 引擎),产物体积通过 tree-shaking 自动处理。需要手动优化的是避免动态 class 等性能陷阱。
## CSS 产物体积:tree-shaking 自动处理
TailwindCSS v3+ 用 JIT 模式——只生成你实际使用的 class,不用的不会出现在 CSS 里。不需要手动 purge(v2 时代的做法)。
检查产物大小:
```bash
npx tailwindcss --minify -i input.css -o output.css...服务端2月17日 14:27
TailwindCSS v4 有什么新变化?从 v3 迁移指南TailwindCSS v4 是一次底层重写——从 PostCSS 插件变成了 Rust 编写的独立引擎,构建速度提升 10 倍。配置方式也从 tailwind.config.js 变成了 CSS 原生配置。API 变化不大,但工具链完全不同。
## 最大的变化:Oxide 引擎
v3 用 PostCSS + Node.js 处理 CSS,大项目构建可能要 500ms+。v4 用 Rust 写的 Oxide 引擎,同样的项目降到 5ms。实际感受:v3 修改一个 class 要等几百毫秒才看到变化,v4 几乎即时。
## 配置方式变了
v3 用 JavaScript 配置文件,v...服务端2月17日 14:40
Docker Compose 怎么用?多容器编排和常用命令速查Docker Compose 用一个 YAML 文件定义和运行多容器应用。一条命令启动所有服务,不用逐个 docker run。
## docker-compose.yml 基本结构
关键配置:
- build: . — 用当前目录的 Dockerfile 构建镜像
- ports: 宿主机端口:容器端口
- environment: 环境变量(同一网络内用服务名互访,如 DB_HOST: db)
- depends_on: 启动依赖(只控制启动顺序,不等服务就绪)
- volumes: 数据持久化(.:/app 挂载源码方便开发热更新)
## 常用命令
## 开发 vs...