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

Bagaimana untuk Menentukan Piawaian C Lalai Digunakan oleh g ?

DDD
Lepaskan: 2024-11-17 06:08:03
asal
767 orang telah melayarinya

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;
}
Salin selepas log masuk

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
Salin selepas log masuk

Sebagai contoh, menggunakan arahan ini pada Ubuntu 4.8.4 versi g , anda akan mendapat output:

#define __cplusplus 199711L
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan