<legend id='jdcJl'><style id='jdcJl'><dir id='jdcJl'><q id='jdcJl'></q></dir></style></legend>

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

        <tfoot id='jdcJl'></tfoot>

      1. <small id='jdcJl'></small><noframes id='jdcJl'>

          <bdo id='jdcJl'></bdo><ul id='jdcJl'></ul>
      2. 为什么 rand() 编译时不包含 cstdlib 或使用命名空间 std?

        时间:2023-07-02
          • <bdo id='xy03q'></bdo><ul id='xy03q'></ul>
            <legend id='xy03q'><style id='xy03q'><dir id='xy03q'><q id='xy03q'></q></dir></style></legend>

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

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

                  <tbody id='xy03q'></tbody>
                  <tfoot id='xy03q'></tfoot>

                  本文介绍了为什么 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?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

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

                  相关文章

                      <bdo id='QD7p6'></bdo><ul id='QD7p6'></ul>

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

                      <legend id='QD7p6'><style id='QD7p6'><dir id='QD7p6'><q id='QD7p6'></q></dir></style></legend>

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