10. september 2007 - 10:55Der 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.
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().
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?
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.