Why are global variables bad, in a single threaded, non-os, embedded application

It wouldn’t. The two fundamental issues with global variables is simply cluttering the namespace, and the fact that “no one” has “control” over them (thus the potential collisions and conflict with multiple threads). The “globals are bad”, like pretty much every other computer programming idiom is a guideline, not a hard and fast rule. When …

Read more

Is argv[n] writable?

IMO, code like argv[1] = “123”; is UB (using the original argv). “The parameters argc and argv and the strings pointed to by the argv array shall be modifiable by the program, and retain their last-stored values between program startup and program termination.” C11dr & C17dr1 ยง5.1.2.2.1 2 Recall that const came into C many …

Read more