C语言的局限性有:1、命名空间缺失;2、宏;3、内存;4、对平台抽象不够;5、包管理器。两个文件中如果有同一名称的全局变量后,链接会报错。include了两个包含相同宏名的头文件时,预处理时会报错。
1、命名空间缺失
两个文件中如果有同一名称的全局变量后,链接会报错。include了两个包含相同宏名的头文件时,预处理时会报错。当两个.lib库中有相同名称的变量时,链接的时候会选择第一个lib库中的变量。
2、宏
我们知道预处理阶段会替换宏,所以预处理器非常简单,根本无法检查宏函数的有效性,所以很多语言中淡化了宏或者直接取消了宏功能。
3、内存
C语言对内存的访问很直接,程序中很多bug都是出在内存问题上,不是程序猿很菜,是语言设计上就没有太多考虑内存的管理操作问题。
4、对平台抽象不够
数据长度问题:16位平台上 int是16bit,但32平台上是32bit,这样程序移植上就有问题。数据大小端问题。
5、包管理器
c语言生态没有一个特别好用的包管理器,可以源码和二进制级别管理代码,c语言库的依赖问题,这是个让每个程序猿都非常头疼的问题。
延伸阅读:
什么是C语言?
文章标题:纯C语言有什么绝对的局限性,发布者:小编,转载请注明出处:https://worktile.com/kb/p/41315