C Standard Detection dalam g
Dalam C , versi pengkompil standard mungkin menjejaskan kelakuan dan keserasian kod anda. Apabila menyusun dengan g , memahami standard lalai adalah penting.
Pertimbangkan coretan kod berikut:
#include <fstream> #include <string> int main() { std::string filename = "input.txt"; std::ifstream in(filename); return 0; }
Jika anda menyusun kod ini pada Windows menggunakan perintah g example.cpp, ia mungkin gagal kerana ralat pemaut yang berkaitan dengan penukaran daripada std::string kepada const char*. Walau bagaimanapun, menentukan standard C tertentu menggunakan g -std=c 17 example.cpp menyelesaikan isu ini.
Untuk menentukan piawaian C lalai yang digunakan oleh g , anda boleh melaksanakan arahan berikut:
g++ -dM -E -x c++ /dev/null | grep -F __cplusplus
Sebagai contoh, menggunakan arahan ini pada Ubuntu 4.8.4 versi g , anda akan mendapat output:
#define __cplusplus 199711L
Ini menunjukkan bahawa piawai C lalai untuk versi g ini ialah C 98 ( 199711L mewakili semakan November 1997 bagi piawaian C).
Adalah disyorkan untuk sentiasa menyatakan piawaian C yang dikehendaki secara eksplisit apabila menyusun dengan g . Ini memastikan kod mematuhi piawaian yang dimaksudkan dan mengelakkan potensi isu keserasian yang mungkin timbul daripada menggunakan piawaian yang lapuk atau tidak diingini.
Atas ialah kandungan terperinci Bagaimana untuk Menentukan Piawaian C Lalai Digunakan oleh g ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!