我正在编译大量使用 srand() 和 rand() 的文件,但不包括 stdlib.h。 我知道这是不好的做法,但是由于我无法更改正在编译的文件,因此无法在每个文件中插入必要的 include 语句。
如何配置我的编译器以允许隐式包含 stdlib 函数?另外,有没有办法以同样的方式隐式使用 std 命名空间?
编辑:使用 g++
编辑:看起来这就是答案(至少是第一部分)。要像包含 stdlib.h 一样编译文件,请使用选项 -include stdlib.h
最佳答案
正如您现在提到的,您正在使用 GCC,您可以只使用 -include
旗帜。其他编译器可能有等效项。
如果您的编译器没有这样的标志,您可以使用以下不完全严肃的解决方案,它应该仍然有效:
nice.cc
#include <stdlib.h>
#include "naughty.cc"
(其中 naughty.cc 是原始源文件)。
当然,使用合适的构建系统,您可以自动生成漂亮的包装文件。
关于c++ - 在不包含 stdlib.h 的情况下使用 stdlib 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15575705/