<legend id='c9RSU'><style id='c9RSU'><dir id='c9RSU'><q id='c9RSU'></q></dir></style></legend>
<tfoot id='c9RSU'></tfoot>

      <bdo id='c9RSU'></bdo><ul id='c9RSU'></ul>
  1. <small id='c9RSU'></small><noframes id='c9RSU'>

      <i id='c9RSU'><tr id='c9RSU'><dt id='c9RSU'><q id='c9RSU'><span id='c9RSU'><b id='c9RSU'><form id='c9RSU'><ins id='c9RSU'></ins><ul id='c9RSU'></ul><sub id='c9RSU'></sub></form><legend id='c9RSU'></legend><bdo id='c9RSU'><pre id='c9RSU'><center id='c9RSU'></center></pre></bdo></b><th id='c9RSU'></th></span></q></dt></tr></i><div id='c9RSU'><tfoot id='c9RSU'></tfoot><dl id='c9RSU'><fieldset id='c9RSU'></fieldset></dl></div>

      为什么 rand() 编译时不包含 cstdlib 或使用命名空间

      时间:2023-10-06

      <small id='pJPSP'></small><noframes id='pJPSP'>

            <tbody id='pJPSP'></tbody>
          <tfoot id='pJPSP'></tfoot>
          <i id='pJPSP'><tr id='pJPSP'><dt id='pJPSP'><q id='pJPSP'><span id='pJPSP'><b id='pJPSP'><form id='pJPSP'><ins id='pJPSP'></ins><ul id='pJPSP'></ul><sub id='pJPSP'></sub></form><legend id='pJPSP'></legend><bdo id='pJPSP'><pre id='pJPSP'><center id='pJPSP'></center></pre></bdo></b><th id='pJPSP'></th></span></q></dt></tr></i><div id='pJPSP'><tfoot id='pJPSP'></tfoot><dl id='pJPSP'><fieldset id='pJPSP'></fieldset></dl></div>
            • <legend id='pJPSP'><style id='pJPSP'><dir id='pJPSP'><q id='pJPSP'></q></dir></style></legend>
                <bdo id='pJPSP'></bdo><ul id='pJPSP'></ul>
                本文介绍了为什么 rand() 编译时不包含 cstdlib 或使用命名空间 std?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                问题描述

                根据我正在阅读的书,rand() 在 C++ 中需要 #include
                但是,我能够编译以下使用 rand() 的代码,而无需 #include <cstdlib>using namespace std; 在 Visual 中工作室 2015.
                为什么这两个不需要编译?我应该包括 cstdlib 吗?

                According to the book I'm reading, rand() requires #include <cstdlib> in C++
                However, I am able to compile the following code that uses rand() without #include <cstdlib> nor using namespace std; in Visual Studio 2015.
                Why are these two not needed to compile? Should I include cstdlib?

                C++ 代码:

                #include <iostream>
                
                int main()
                {
                    std::cout << rand() << std::endl;
                }
                

                推荐答案

                有两个问题在起作用:

                1. 标准库头文件可能包含其他标准库头文件.所以 iostream 可以直接或间接包含 cstdlib.
                2. 具有 C 标准库等效项(例如 cstdlib)的头文件可以将 C 标准库名称带入全局命名空间,即在 std 命名空间之外(例如 rand.)这是从 C++11 开始正式允许的,并且在之前被广泛容忍.
                1. Standard library header files may include other standard library header files. So iostream may include cstdlib directly or indirectly.
                2. Header files with C-standard library equivalents (e.g. cstdlib) are allowed to bring C standard library names into the global namespace, that is, outside of the std namespace (e.g. rand.) This is formally allowed since C++11, and was largely tolerated before.

                这篇关于为什么 rand() 编译时不包含 cstdlib 或使用命名空间 std?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                上一篇:如果投掷会发生什么;语句是在 catch 块之外执行 下一篇:为什么调用这个复制构造函数而不是移动构造函

                相关文章

                最新文章

                <tfoot id='1ESYm'></tfoot>

                <legend id='1ESYm'><style id='1ESYm'><dir id='1ESYm'><q id='1ESYm'></q></dir></style></legend>

                    • <bdo id='1ESYm'></bdo><ul id='1ESYm'></ul>

                    <small id='1ESYm'></small><noframes id='1ESYm'>

                    <i id='1ESYm'><tr id='1ESYm'><dt id='1ESYm'><q id='1ESYm'><span id='1ESYm'><b id='1ESYm'><form id='1ESYm'><ins id='1ESYm'></ins><ul id='1ESYm'></ul><sub id='1ESYm'></sub></form><legend id='1ESYm'></legend><bdo id='1ESYm'><pre id='1ESYm'><center id='1ESYm'></center></pre></bdo></b><th id='1ESYm'></th></span></q></dt></tr></i><div id='1ESYm'><tfoot id='1ESYm'></tfoot><dl id='1ESYm'><fieldset id='1ESYm'></fieldset></dl></div>