Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Symfonia C++ - zmiana typu stałej dosłownej z float na float

Ostatnio zmodyfikowano 2013-01-18 21:30
Autor Wiadomość
DejaVu
» 2013-01-18 15:29:21
13.3f - liczba typu float
13.3 - liczba typu double
P-74285
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
P-74286
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
P-74287
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.
P-74288
Berux
Temat założony przez niniejszego użytkownika
» 2013-01-18 15:39:10
Do rzutowania jeszcze nie doszedłem :)
/edit: @DejaVu

racja
P-74289
Berux
Temat założony przez niniejszego użytkownika
» 2013-01-18 20:53:17
Sory, że wznawiam, ale sprawdziłem sobie taki kod:

C/C++
#include <iostream>
using namespace std;
int main()
{
   
    double x = 14.5f;
    cout << sizeof( x );
   
    return 0;
}

To wypisuje mi:
8

A kod:
C/C++
#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
.
P-74309
m4tx
» 2013-01-18 21:11:47
No tak, bo deklarujesz zmienną jako double :)
P-74312
DejaVu
» 2013-01-18 21:27:01
Jak już koniecznie chcesz iść tą drogą to:
C/C++
#include <iostream>

int main()
{
    std::cout << sizeof( 14.5f ) << std::endl;
    std::cout << sizeof( 14.5 ) << std::endl;
    return 0;
}
P-74317
1 « 2 » 3
Poprzednia strona Strona 2 z 3 Następna strona