aboutsummaryrefslogtreecommitdiff
path: root/vs-c.md
diff options
context:
space:
mode:
Diffstat (limited to 'vs-c.md')
-rw-r--r--vs-c.md12
1 files changed, 7 insertions, 5 deletions
diff --git a/vs-c.md b/vs-c.md
index 60d7905..bceaab1 100644
--- a/vs-c.md
+++ b/vs-c.md
@@ -6,7 +6,7 @@ Some of the footguns and complexity in C come from misfeatures that can simply n
## Footguns
-### Almost Always The Wrong Thing
+Some constructs in C are almost always the wrong thing.
- `goto`
- Octal literals
@@ -19,7 +19,7 @@ Some of the footguns and complexity in C come from misfeatures that can simply n
- Mixed chains of bitwise or logical operators (e.g. `2 & x && 4 ^ y`)
- The comma operator `,`
-### Explicit Beats Implicit
+Some constructs in C exhibit implicit behavior that should instead be made explicit.
- `typedef`
- Octal escape sequences
@@ -29,12 +29,12 @@ Some of the footguns and complexity in C come from misfeatures that can simply n
## Needless Complexity
-### Let The Compiler Decide
+Some type modifiers in C exist solely for the purpose of enabling optimizations which most compilers can do already.
- `inline`
- `register`
-### Who Even Cares
+Some type modifiers in C only apply in very specific circumstances and so aren't important.
- `restrict`
- `volatile`
@@ -61,7 +61,9 @@ However, sometimes it just sucks, and in those cases Crowbar makes changes.
## Anti-Footguns
- C is generous with memory in ways that are unreliable by default.
- Crowbar adds [memory safety guarantees](safety.md) to make correctness the default behavior.
+ Crowbar adds [memory safety conventions](safety.md) to make correctness the default behavior.
+- C's conventions for error handling are unreliable by default.
+ Crowbar adds [error propagation](errors.md) to make correctness the default behavior.
## Trivial Room For Improvement