C语言一个函数里是不是不能有太多变量

函数局部变量有内存限制,通常是6 4 K。
大数组定义困难,用指针可以解决。
编程避免大数组,拆分函数、C++封装、作用域和指针可防溢出。

这堆代码是百度知道网页的脚本文件。
主要是加载各种JS库和组件。
包括jQuery、tangram框架、用户登录状态管理、搜索框、底部页脚等。

你看明白了吗?

C语言为什么报错说未定义的变量?

这错误听着挺麻烦的啊。
外部引用变量没找到定义,这事儿常见得很。

就说上次吧,我在调试一个Windows下的项目,用的是Visual Studio 2 01 9 突然卡死,看日志发现就是这种引用错误。
明明在头文件里定义了全局变量 g_userCount,但链接的时候却找不到。
当时我一脸懵逼,反复检查了好几遍,才发现是头文件包含了两次,导致编译器以为有两个不同的 g_userCount。
解决方法就是改改 include 的顺序,或者用 static 关键字限制作用域。

再说说链接器找不到东西的问题。
这确实复杂。
比如有一次用Linux编译一个库,用的是GCC。
链接报错,说找不到某个函数 calculateChecksum。
我这人吧,比较犟,先检查自己代码,确保函数声明和实现都对得上。
然后翻遍了编译器的输出,发现提示找不到 -lcrypto 库。
嘿,我这才发现忘了加链接选项。
加上了就好了。

总的来说啊,这两种错误,一个是自己代码没写对,一个是编译环境配置问题。
解决方法就是: 1 . 确保每个 extern 变量、函数声明都有对应的定义。
头文件里声明,实现文件里定义。
2 . 检查链接器是不是少了某个库。
比如Linux下用 -l 加上库名,Windows下可能要手动添加库文件路径。
3 . 注意编译器和链接器的版本兼容性,有时候旧版本和新版本之间会有差异。

C语言这东西吧,确实底层,但用好了很厉害。
从8 0年代搞出ANSI C标准开始,到现在C1 1 ,一直在进步。
汉字函数名这事儿,说实话,我都没用过,但确实方便一些中国人写代码。
编译器也多了,Clang、GCC这些用得都挺多。

总之啊,碰到这种错误,别慌。
先定位是代码问题还是环境问题,再一步步排查。
一般都能解决。