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