甘肃金恒大建设有限公司网站,各种浏览器大全,月夜直播免费完整版下载,网站建设相关文章优点 编译时间减少#xff1a;模块消除了重复解析和编译头文件的需要#xff0c;从而显著减少了编译时间。特别是在大型项目中#xff0c;这一点尤为重要。更好的封装性#xff1a;模块允许更严格的封装#xff0c;可以明确地控制哪些符号对外可见。这有助于减少命名冲突和… 优点 编译时间减少模块消除了重复解析和编译头文件的需要从而显著减少了编译时间。特别是在大型项目中这一点尤为重要。更好的封装性模块允许更严格的封装可以明确地控制哪些符号对外可见。这有助于减少命名冲突和不必要的依赖。减少命名冲突模块通过命名空间和模块名称来管理符号减少了全局命名空间中的命名冲突问题。提高代码可读性和维护性模块化的代码结构更加清晰便于理解和维护。每个模块都有明确的职责和接口使得代码组织更加合理。更好的工具支持模块化的设计使得 IDE 和其他开发工具可以更好地支持代码导航、重构和分析。减少宏的使用模块减少了对宏的依赖因为模块提供了更强大的抽象和封装机制 main.ixx 接口
export module api;
import :part1;
import :part2;export char const* hello();export {int one();int zero();
}export namespace hi{
const char* english();
const char* french();
}
main.cppm 实现 module api;
//module :private; 不可见
char const* hello() { return hello; }
char const* world() { return world; } part1.cppm 分区一
export module api:part1;
int one() { return 1;}
int zero() { return 0;} part2.cppm 分区一
export module api:part2;
import :part1;
import string;namespace hi{
const char* english() { return en;}
const char* french() { return fr;}
const char* test() { return std::to_string(one()).c_str(); }
} main.cpp
import iostream;
import api;void print(std::string_view msg) {std::cout msg std::endl;
}void print(int val) {std::cout val std::endl;
}int main() {print(hello());print(one());print(hi::english());
} 输出 hello 1 en 参考
Overview of modules in C | Microsoft Learn
C20 Module 使用指南 - ihnfsa’s blog
C现代教程六_#include iostream using namespace std; typedef s-CSDN博客 创作不易小小的支持一下吧