![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux C/C++
文章平均质量分 95
广皈
这个作者很懒,什么都没留下…
展开
-
【Linux C基础】C语言概念辨析
编译是将源代码转换为目标代码的过程。它是在编译器的帮助下完成的。编译器检查源代码是否存在语法或结构错误,如果源代码没有错误,则生成目标代码。编译过程可分为预处理、编译、汇编和链接四个步骤。不可行,如果在头文件中定义静态变量,会造成资源浪费的问题,同时也可能引起程序错误。因为这会导致在使用了该头文件的每个 C 语言文件中都定义该静态变量从而会引起空间浪费或者程序错误所以。不推荐在头文件中定义任何变量,当然也包括静态变量。原创 2024-08-23 19:42:18 · 883 阅读 · 0 评论 -
【Linux C基础】虚拟内存分布
程序只是一段可以执行的代码文件,通俗讲在 linux 上就是一个可执行文件。当一个程序运行时就被称为进程,即进程是运行状态的程序。对32位处理器,虚拟内存空间为4G,每个进程都认为自己拥有4G的空间。虚拟内存又被划分为不同分区,用于存储不同类型的数据。简单地说就是申请了一块内存空间,使用完毕后没有释放掉。它的一般表现方式是程序运行时间越长,占用内存越多,最终用尽全部内存,导致整个系统崩溃。原创 2024-08-20 22:45:44 · 524 阅读 · 0 评论 -
【Linux C基础】程序编译
define的优势在于其既可以替代常数值,又可以替代表达式,甚至是代码段;但#define是在编译期完成的文本替换,不做正确性处理。因此使用#define定义常量,容易引入预料不到的BUG。而const的引入则可以增强程序的可读性,它使程序的维护与调试变得更加方便。内存分配#define只是单纯的文本替换,且#define常量的生命周期止于编译期,不分配内存空间,它存在于程序的代码段。const常量则在堆/栈中分配了空间,const常量在程序中确确实实存在,并且可以被调用、传递。安全检查const。原创 2024-08-20 18:32:15 · 832 阅读 · 0 评论