# 宏、头文件与构建边界检查清单

## 宏与条件编译

- 函数式宏是否有副作用重复求值、缺少括号或与类型不匹配的问题。
- `#ifdef`/`#ifndef` 分支是否让不同平台下的行为、布局或导出接口出现不一致风险。

## 头文件契约

- 头文件是否暴露不必要的内部实现、可变全局状态或缺少 include guard / `#pragma once`。
- 声明与定义、`extern`、`static inline`、结构体前置声明是否与新增调用方式一致。

## 模块边界

- 新增公共头或导出符号时，是否破坏已有调用约定、初始化顺序或错误处理契约。
- 仅凭 diff 可见信息判断问题，不假设未展示模块的包含顺序和链接方式。
