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
552 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!

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