Borland C 5.5 Warning over variabele

Status
Niet open voor verdere reacties.

vitronix

Nieuwe gebruiker
Lid geworden
12 feb 2016
Berichten
3
Hallo allemaal,

Ik ben begonnen met programmeren in C.
Ik gebruik de (oude) Borland C compiler, versie 5.5.1

Ik heb een header bestand gemaakt pacific_sea.h:
Code:
#define OPPERVL					2337
#define VIERK_MIJL_PER_VIERK_KM		0.3861021585424458
#define VIERK_VOET_PER_VIERK_MIJL	(95280 * 5280)
#define VIERK_INCH_PERVIRK_VOET		144
#define ACRES_PER_VIERK_MIJL		640

Dit is het programma pacific_sea.c

Code:
/* Opmeten van de Pacific Sea */
/* Vreemde waarschuwing van de compiler, snap het niet . . . */

#include <stdio.h>
#include "pacific_sea.h"

int main()
{
	const	int	pacific_sea=OPPERVL;	/* In vierkante kilometers */
	double	acres, vierk_mijl, vierk_voet, vierk_inch;
	
	vierk_mijl = 2230.0; /* Warning W8004 C:\Users\Jan\Documents\MyCode\C\pacific_sea.c 11: 'vierk_mijl' is assigned a value that is never used in function main */
	vierk_voet = 16550.0;
	
	printf("\nDe Pacific Sea heeft een oppervlakte van\n");
	printf("%d vierkante kilometer.\n", pacific_sea);
	vierk_mijl = VIERK_MIJL_PER_VIERK_KM * pacific_sea;
	vierk_voet = VIERK_VOET_PER_VIERK_MIJL * vierk_voet;
	vierk_inch = VIERK_INCH_PERVIRK_VOET * vierk_voet;
	acres = ACRES_PER_VIERK_MIJL * vierk_mijl;
	printf("Ïn andere eenheden word dit:\n\n");
	printf("%22.7e acres\n", acres);
	printf("%22.7e vierkante mijl\n", vierk_mijl);
	printf("%22.7e vierkante voet\n", vierk_voet);
	printf("%22.7e vierkante inch\n", vierk_inch);
	return 0;
}

Mijn vraag is waarom klaagt de compiler over een variabele vierk_mijl en niet over vierk_voet?

Groet,

Jan
 
Zou wellicht aan het volgende kunnen liggen:
Je geeft vierk_mijl een initiële waarde, maar verderop overschrijf je die variabele, terwijl je bij vierk_voet een nieuwe waarde geeft waarbij je ook rekent met die variabele.

Oftewel (hopelijk duidelijker): De initiële toekenning van een waarde aan vierk_mijl "dient tot niets" omdat je deze variabele later overschrijft zonder deze variabele daarvóór ook maar ergens gebruikt te hebben.

vierk_mijl = VIERK_MIJL_PER_VIERK_KM * pacific_sea;
vierk_voet = VIERK_VOET_PER_VIERK_MIJL * vierk_voet;

[Zie dat je vierk_mijl berekent op basis van vermenigvuldiging van puur andere variabelen terwijl je vierk_voet berekent op basis van vermenigvuldiging van een andere variabele én de vierk_voet zelf]

Tijs.
 
Laatst bewerkt:
Dankjewel dnties,

Het is me helemaal duidelijk, ik hoef vierk_mijl helemaal niet te initialiseren.
Heb de initialisatie eruit gehaald en het compileert en draait zonder waarschuwingen of problemen.

Vitronix

(b.t.w. ik weet niet hoe ik deze vraag nou als opgelost markeer)
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan