簡體   English   中英

使用stdlib函數而不包括stdlib.h

[英]Use stdlib functions without including stdlib.h

我正在編譯大量使用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是原始源文件)。

當然,使用合適的構建系統,您可以自動生成漂亮的包裝器文件。

既然你已經接受了不好的練習,那么:

cat > foo.c << EOF
#include <stdlib.h>
#include "file-to-compile.c"
EOF

${CC} foo.c

您正在使用GCC,因此您可以使用-include選項(來自手冊 ):

處理文件好像#include“file”出現在主源文件的第一行。

例如:

g++ -include stdlib.h foo.c

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM