来吧!《安规集》正是一套详细的 C++ 标准导读资料,全称《360 安全规则集合》。
众所周知,学习者不宜直接阅读语言标准文档,否则会迷失在繁杂的细节之中,对此《安规集》应运而生,为读者深入学习语言标准提供指引,Web 版地址:
360 安全规则集合 - C/C++ 安全编程指南https://saferules.github.io/《安规集》以 ISO/IEC 9899:2011、ISO/IEC 14882:2011 为依据,兼顾 C18、C++17 及历史标准,按如下要求,总结了近五百条编程注意事项:
- undefined:未定义的行为,这种行为造成的后果是不可预期的
- unspecified:未声明的行为,这种行为由编译器或环境定义,具有随意性
- implementation:由实现定义的行为,这种行为由编译器或环境定义,有明确的文档支持,但不具备可移植性
- deprecated:已被废弃的或不建议继续使用的语言特性
注意事项分类:
- Security:敏感信息防护
- Resource:资源管理
- Precompile:预处理、宏、注释
- Global:全局及命名空间作用域
- Type:类型设计与实现
- Declaration:声明
- Exception:异常
- Function:函数实现
- Control:流程控制
- Expression:表达式
- Literal:常量
- Cast:类型转换
- Buffer:缓冲区
- Pointer:指针
- Interruption:中断与信号处理
- Concurrency:异步与并发
- Style:样式与风格
其中每一个注意事项都是一篇简短精炼的文章,并配有详细的示例,由点及面,强调逆向思维和发散思维。
《安规集》为开源项目,Github 仓库地址:
360 安全规则集合https://github.com/Qihoo360/safe-rules
如果有疑问或修订意见,可在其 Issue 区联系作者哟~