Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menentukan Piawaian C Lalai Digunakan oleh g ?

Bagaimana untuk Menentukan Piawaian C Lalai Digunakan oleh g ?

DDD
DDDasal
2024-11-17 06:08:03714semak imbas

How to Determine the Default C   Standard Used by g  ?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn