Avatar billede limes_planum Praktikant
10. september 2007 - 10:55 Der er 4 kommentarer og
1 løsning

Void main(void) kontra int main()

Udfra koden:

# include <iostream>
using std::cout;
using std::endl;
using std::cin;

void byt_vaerdier(float *a, float *b)
{
    // Temporær variabel til at
    // opbevare en værdi
    float temp;

    temp = *a;
*a = *b;
*b = temp;

}
int main()
{
float stor = 10000.0;
float lille = 0.00001;


byt_vaerdier(&stor, &lille);

cout << "Stor indeholder nu  " << stor << endl;
cout << "Lille indeholder nu  " << lille << endl;
cin.get();
}

- der hovedsagligt er taget fra et ældre lærehæfte, får jeg flg. warning i Visual Studio 2008:

'Warning    1    warning C4305: 'initializing' : truncation from 'double' to 'float' ...    '

Hvorfor? Definerer jo float hele vejen igennem. Er typen double standard eller hvad??

Har en mistanke om at det har noget med min 'hovedprogramstarter'; 'int main()' som virker til at være ændret fra 'Void main(void)' siden mit lærehæfte er skrevet.
Avatar billede jpk Nybegynder
10. september 2007 - 11:08 #1
Brug f for at angive det er en float...

float stor = 10000.0f;
float lille = 0.00001f;
Avatar billede jpk Nybegynder
10. september 2007 - 11:10 #2
Det er iøvrigt korrekt at bruge "int main" og så returnere fx 0 sidst i main.
Avatar billede arne_v Ekspert
10. september 2007 - 15:18 #3
void main()

har aldrig vaeret "rigtig".

int main()

er og har altid vaeret det rigtige.

Desvaerre har mange laereboeger vaeret lidt sjuskede paa det omraade.

Hvis man gaar meget op i sprog definitioner, saa mener jeg at ANSI C siget int main()
men tillader implementation specifikke alternativer, mens ANSI C++ kun tillader int main().
Avatar billede limes_planum Praktikant
10. september 2007 - 22:00 #4
Således point men tak til Jer begge alligevel - en sidste ting min output-prompt skriver væredierne som: ".. stor nu 1e-005" og "... lille nu 10000"  - men det er måske meget logisk med float i den sammenhæng?
Avatar billede jpk Nybegynder
11. september 2007 - 09:04 #5
Du skal nok bruge fixed point notation, se her:
http://www.cplusplus.com/reference/iostream/manipulators/fixed.html
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester