CPP常见问题
为什么inline 不适用于长函数?
- 代码膨胀,可维护性差:编译产物会增大,同时修改代码需要重新编译所有调用点,调试。
- 缓存失效:函数体过长会降低CPU指令缓存(l-cache)效率,性能可能变慢。
- 编译器优化能力:现代编译器自动根据函数的大小、调用频率来判断是否inline,因此手动添加的inline不一定生效。
在 C++ 中,endl 和 "\n" 都能实现换行,但有一些重要区别
"\n"- 只是换行符(newline character),会插入一个
'\n'到输出缓冲区。 - 不会立即刷新输出缓冲区。
- 通常打印大量数据时,用
"\n"效率更高,因为不会强制刷新。
- 只是换行符(newline character),会插入一个
endl- 在插入换行符
'\n'的同时,会刷新(flush)输出缓冲区。 - 刷新意味着将缓冲区数据立即输出到目的地(如终端、文件)。
- 会带来额外开销,因此频繁用
endl会影响性能。
- 在插入换行符