Symfonia C++ - zmiana typu stałej dosłownej z float na float
Ostatnio zmodyfikowano 2013-01-18 21:30
DejaVu |
» 2013-01-18 15:29:21 13.3f - liczba typu float 13.3 - liczba typu double
|
|
Berux Temat założony przez niniejszego użytkownika |
» 2013-01-18 15:30:54 13.3f - liczba typu float 13.3 - liczba typu double
|
Nawet jak zadeklaruje: float x = 1.2, to będzie to double? /edit: Proponuję wzmiankę o tym w kursie xD |
|
m4tx |
» 2013-01-18 15:33:49 @m4tx, ten kod, który podałeś ma jaki stopnień optymalizacji? |
A żaden (/defaultowy?) :) Kompilowałem to tak: g++ -S -o wtf.asm wtf.cpp |
|
DejaVu |
» 2013-01-18 15:36:49 Po prostu nastąpi rzutowanie z double na float. Kompilator Visual C++ z maksymalnym poziomem ostrzeżeń da Ci stosownego warninga.
@tomczyk11255: wzmianka w kursie na poziomie podstawowym nie ma sensu, bo i tak dla początkującego programisty będą to tylko szlaczki. Planuję na pewnym poziomie kursu zacząć pisać sztuczki i kruczki, które nie zostały omówione 'wcześniej', ale najpierw programista musi znać podstawy, by zrozumieć sens różnych mechanizmów. |
|
Berux Temat założony przez niniejszego użytkownika |
» 2013-01-18 15:39:10 Do rzutowania jeszcze nie doszedłem :) /edit: @DejaVu
racja |
|
Berux Temat założony przez niniejszego użytkownika |
» 2013-01-18 20:53:17 Sory, że wznawiam, ale sprawdziłem sobie taki kod: #include <iostream> using namespace std; int main() { double x = 14.5f; cout << sizeof( x ); return 0; }
To wypisuje mi: 8 A kod: #include <iostream> using namespace std; int main() { float x = 14.5f; cout << sizeof( x ); return 0; }
Oddaje na konsole: 4 Co jest? Przecież w pierwszym kodzie dopisałem na końcu f , a typ się nie zmienia na float . |
|
m4tx |
» 2013-01-18 21:11:47 No tak, bo deklarujesz zmienną jako double :) |
|
DejaVu |
» 2013-01-18 21:27:01 Jak już koniecznie chcesz iść tą drogą to: #include <iostream>
int main() { std::cout << sizeof( 14.5f ) << std::endl; std::cout << sizeof( 14.5 ) << std::endl; return 0; }
|
|
1 « 2 » 3 |