Rumah > pembangunan bahagian belakang > C++ > Mengapakah Printf() mempromosikan pelampung kepada beregu?

Mengapakah Printf() mempromosikan pelampung kepada beregu?

DDD
Lepaskan: 2024-11-17 08:09:03
asal
598 orang telah melayarinya

Why does Printf() promote floats to doubles?

Selam dalam: Mengapa Printf() menggalakkan nombor titik terapung kepada nombor titik terapung ketepatan menggandakan

Mengapa Printf() menggalakkan parameter terapung menjadi dua kali ganda , bukan hanya kerana ia adalah fungsi variadic. Menurut Piawaian C dan Piawaian C, semua hujah apungan kepada fungsi variadik dinaikkan kepada dua kali ganda sebelum diluluskan.

Seksyen 6.5.2.2 standard C99 dengan jelas menyatakan: "[...] Parameter jenis titik terapung dinaikkan kepada dua kali ganda. Ini dipanggil promosi parameter lalai. [...]"

Bahagian 5.2.2 piawaian draf C juga menyatakan: "[...] Jika parameter jenis titik terapung dipengaruhi oleh promosi titik terapung (4.6), nilai parameter akan ditukar kepada jenis digalakkan sebelum panggil. [.. .]"

Selain itu, bahagian 4.6 menyatakan: "Nilai pr jenis apungan boleh ditukar kepada nilai pr jenis berganda "

Cppreference merumuskan C dengan baik. promosi

    enum bool , char, short dan tanpa domain ditukar kepada int atau integer yang lebih luas, konsisten dengan promosi integer
  • Dalam C, penukaran ini adalah untuk keserasian dengan K&R C spesifikasi Standard Antarabangsa (Bahasa Pengaturcaraan - C) dengan jelas menyatakan: "Untuk keserasian dengan amalan lepas, jika tiada pengisytiharan prototaip, semua promosi parameter dilakukan seperti yang diterangkan oleh K&R,
  • termasuk terapung untuk menggandakan Penambahbaikan
  • . "

Atas ialah kandungan terperinci Mengapakah Printf() mempromosikan pelampung kepada beregu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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