Posts
2025
为什么头文件声明要写 static/const,而实现时 static 要省略、const 必须保留?
摘要:本文系统分析了C99标准引入的可变长度数组(Variable-Length Array, VLA)特性,从其技术原理、标准演进、性能特征和安全风险等维度展开深度探讨。结合ISO/IEC标准文档与核心编译器实现,本文揭示了VLA在栈内存动态分配机制上的根本局限,并通过实证分析验证了其在安全关键系统中的重大隐患。研究指出,现代C语言开发中应优先选择柔性数组成员(Flexible Array Member)和动态内存分配等替代方案,并给出了在限制性环境中处理动态数组的技术建议。
CMake;条件编译;if;生成器表达式;变量作用域;缓存变量;目录作用域;函数作用域;option()
在CMake中,include_directories()和target_include_directories()都用于指定头文件搜索路径,但它们在作用范围和使用方法上有显著区别。现代CMake项目建议优先使用target_include_directories()。
需要链接 rt 库
首先在服务器上安装 git