diff --git a/STYLE b/STYLE index e59b6fd..4e35af6 100644 --- a/STYLE +++ b/STYLE @@ -84,8 +84,33 @@ library crates. Group alike statements: use strerror::StrError; use sysexits::{ EX_OSERR, EX_USAGE }; +11. Do not use do while loops in C. + +12. Follow the rules from the paper The Power of 10: Rules for Developing +Safety-Critical Code [0]: + 1. Avoid complex flow constructs, such as goto and recursion. + 2. All loops must have fixed bounds. This prevents runaway code. + 3. Avoid heap memory allocation. + 4. Restrict functions to a single printed page. + 5. Use a minimum of two runtime assertions per function. + 6. Restrict the scope of data to the smallest possible. + 7. Check the return value of all non-void functions, or cast to void to + indicate the return value is useless. + 8. Use the preprocessor sparingly. + 9. Limit pointer use to a single dereference, and do not use function + pointers. + 10. Compile with all possible warnings active; all warnings should then be + addressed before release of the software. + + +References +========== + +[0] + -- Copyright © 2024 Emma Tebibyte +Copyright © Wikipedia contributors This work is licensed under CC BY-SA 4.0. To view a copy of this license, visit .