关于c语言中规定变量必须先定义后使用的问题

等等,我昨天在帮小李修改代码的时候遇到了一些奇怪的事情。
他的旧单片机项目是用C8 9 标准编写的,在编译器更新后突然报错。
都是因为他的临时变量放得太随意了。
例如,如果循环中需要计数器,则会在定义它之前将其拖到循环体的末尾。
结果,编译器崩溃并报告“tempCounter”未声明。
我将其更改为在循环开始时声明它,嘿,它是开箱即用的。

这让我想起十年前我在实验室做8 05 1 开发板的时候。
当时内存只有几KB,每次都要仔细计算。
有一位前辈非常挑剔。
他写代码就像绣花一样。
所有变量都在函数头中声明,即使它们只使用一次。
他说这样内存就会被干净地释放了。
当时我用的是Keil C5 1 ,每次保存都要等几分钟。
他说这是为了以后调试的时候节省时间。
结果有一个实习生偷懒,直接把变量加到循环里,确实节省了时间。
然而,经过长时间的错误审查,他也受到了处罚。

但是使用STM3 2 和GCC,编译器现在已经足够智能了,如果定位更灵活一点,定位不会有太大影响。
上次写驱动程序时,临时变量直接放在条件语句中,编译器找不到错误。
但老项目还是得遵守规则。
例如,在TI的DSP代码中,如果变量的位置稍微错位,就会报错。
你的编译器真的很严格。

等等,还有别的事。
我发现在中文语境下,大家写C代码的时候,变量命名都是非常一致的,比如:E.g. “temp”、“index”、“flag”等,但在英语圈子里还有更多的变体。
我读过一次 Arm 文档,它们的变量名称是“loopCounter”、“statusFlag”、“bufferPtr”,这真的很长。
不过好处是,看你的代码时,变量的用途基本上一目了然。
不像国内的一些项目,直接用“a”、“b”作为数组,最后整个团队都分不清谁是谁。

c语言变量名规则是什么

结论: 变量命名规则: 1 . 以字母开头,而不是数字。
2 . 不包含空格、标点符号或类型说明符。
3 .区分大小写。
4 . 最大长度为 2 5 5 个字符。
5 、不能是关键字,如auto、double等,总共3 2 个字。

C语言中如何定义全局变量

我记得有一次我在咖啡店随意编写了一个函数,不小心更改了一个全局变量,整个程序开始变得混乱。
当时我突然想到变量就像咖啡里的糖一样。
不加的话就淡了,加多了就太甜了。
嗯,全局变量就像一袋随机放在咖啡店门口的糖,任何人都可以拿起它,而局部变量就像你自己的咖啡杯里的勺子,它是独一无二的。
不过加糖的时候要小心,很容易出错。
等等,还有一件事。
我记得有一位程序员很少在咖啡杯里放糖。
他说这令人耳目一新。
嘿,变量和糖相似吗?