F-35 Fighter Jet's C++ Coding Standards [pdf]
----
- 15 minutes ago | 11 points | 2 comments
- URL: https://www.stroustrup.com/JSF-AV-rules.pdf
- Discussions: https://news.ycombinator.com/item?id=46185393
- Summary: LOCKHEED MARTIN’S JOINT STRIKE FIGHTER “2RDU00001 Rev C” DECEMBER 2005 C++ CODING STANDARDS
Purpose: Mandatory rules for safety-critical Air Vehicle software, extending MISRA-C concepts to C++.
Core Goals: Reliability, portability, maintainability, testability, reusability, extensibility, readability.
Key Constraints:
- Functions ≤ 200 logical lines, cyclomatic complexity ≤ 20.
- Strict subset of ISO C++ 2003; no trigraphs, digraphs, wide/multi-byte chars, errno, setjmp/longjmp, stdio, abort/exit, etc.
- Only four preprocessor directives allowed: #ifndef, #define, #endif, #include; no macro constants or inline macros—use const/inline functions.
- Headers *.h, implementations *.cpp; include guards mandatory; forward declarations to cut dependencies.
Style: 120-char lines, 2-space indent, no tabs, lowercase identifiers with underscores, public/protected/private order, braces required for all blocks.
Libraries: Only DO-178B level A certified or in-house safety-critical libraries.
Deviations: “Shall” rules require engineering & product-manager approval and inline documentation.
include
C 语言笔记该渲染由 Shiro API 生成,可能存在排版问题,最佳体验请前往:https://www.hansjack.com/posts/programming/c-note 感谢Frank 为广大学生打开了进入现代化C语言的大门 6月份写的博文太水了,从这个笔记开始,博客文章内容均会提高到一个高度! 内容来自讲师Micro_Frank的免费课程,笔记具体来自所讲内容,如有侵权,联系博主! 第一章 第一个程序:C语言执行过程 #include
int main()
{
printf("Hello World!n");
return 0;
}
本程序是 C 语言的基础示例,演示了如何输出一行文本。#include 语句包含了标准输入输出库,int main() 是程序的入口点,printf("Hello World!n"); https://www.blogtalk.org/go?from=feed&link=https%3A%2F%2Fwww.hansjack.com%2Fposts%2Fprogramming%2Fc-note
C++的异步编程: std::future, std::async 和 std::promise在 C++ 中,std::future 和 std::async 是 C++11 标准 并发库的一部分。它们允许您异步/Asynchronous运行任务并在稍后获取结果,非常适合编写非阻塞代码和并行化计算。以下是它们的工作原理和典型用法。 C++ std::async std::async 是一个高级函数,允许您异步启动一个任务(一个可调用对象,如函数或 lambda)。您指定要运行的函数,std::async 返回一个表示该 函数结果的 std::future。您可以稍后获取该结果,无论是任务完成时还是您需要时。 #include
#include
#include
int compute() {
std::this_thread::sleep_for(std::chrono::seconds(2));https://www.blogtalk.org/go?from=feed&link=https%3A%2F%2Fjustyy.com%2Farchives%2F66477
简易教程: C++的智能指针C++ 智能指针教程 C++ 中的智能指针提供了自动且安全的内存管理。它们通过 RAII(资源获取即初始化)机制,帮助开发者避免内存泄漏和悬空指针的问题,确保对象在生命周期结束时被正确释放。 本教程将介绍 C++ 中三种主要的智能指针: std::unique_ptr:独占式所有权 std::shared_ptr:共享式所有权 std::weak_ptr:非拥有式弱引用 1. std::unique_ptr unique_ptr 拥有独占所有权。一个资源只能被一个 unique_ptr 拥有。 示例:管理简单对象 #include
#include
int main() {
std::unique_ptr p = std::make_unique(42);
std::cout https://www.blogtalk.org/go?from=feed&link=https%3A%2F%2Fjustyy.com%2Farchives%2F68855
When I do it:
#include <stdio.h>
long int factorial(int number) {
if(number >= 1)
return number*factorial(number-1);
else
return 1;
}
When #DollarGeneral does it:
C++中的assert和static_assert的区别C++ assert 与 static_assert 的区别 C++ 提供了两种机制来验证程序中的假设(断言):assert 和 static_assert。虽然它们看起来类似,但它们在不同的阶段工作,并且用途也不同。 🔍 assert — 运行时检查/断言 assert 用于在程序运行时验证条件是否成立。如果条件为假,程序会打印错误信息并中止运行。 #include
int divide(int x, int y) {
assert(y != 0); // 如果 y 为 0,程序会中止
return x / y;
} assert 通常只在调试模式下启用,如果定义了 NDEBUG,这些断言会被禁用。 🧱 static_assert — 编译时检查/静态断言 static_assert https://www.blogtalk.org/go?from=feed&link=https%3A%2F%2Fjustyy.com%2Farchives%2F68951