Tag: c ++ faq

什么是未定义的引用/未解析的外部符号错误,如何解决?

什么是未定义的引用/未解析的外部符号错误? 什么是常见原因以及如何修复/预防它们? 随意编辑/添加自己的。

未定义的行为和序列点

什么是“序列点”? 未定义的行为和序列点之间的关系是什么? 我经常使用像a[++i] = i;这样有趣而复杂的表达a[++i] = i; ,让自己感觉更好。 我为什么要停止使用它们? 如果您已阅读此内容,请务必访问后续问题重新加载未定义的行为和序列点 。 (注意:这是Stack Overflow的C ++常见问题解答的一个条目。如果你想批评在这种forms下提供常见问题解答的想法,那么发布所有这些的meta上的post就是这样做的地方。这个问题在C ++聊天室中受到监控,其中FAQ的想法首先出现在那里,所以你的答案很可能被那些提出想法的人阅读。)

将std :: string转换为char * for C函数时需要注意什么?

我已经阅读了许多post,询问有关如何将C ++ std::string或const std::string&转换为char*以将其传递给C函数的问题,而且似乎有很多关于这样做的警告。 人们必须要注意字符串是连续的和许多其他的东西。 关键是我从来没有真正理解需要注意的所有要点以及为什么 ? 我想知道是否有人可以总结关于从std::string转换为传递给C函数所需的char*的警告和挫折? 这当std::string是一个const引用时,它只是一个非const引用,当C函数改变char*时它不会改变它。