Inhoudsopgave:
- Typecasting naar ongeloof
- typedef U kunt heel veel problemen krijgen met het trefwoord typedef.Het kan normale C woorden en operatoren uit hun consistente zelf in allerlei onheil storten.
Video: C programming Bangla Tutorial 5.13 : Keyword, Variable, data type (part-1) 2024
In C-programmering, kunt u met de variabele in uw code rommelen door deze in een ander type te veranderen, hem een nieuwe naam te geven of een betovering uit te spreken over de variabel om aan uw behoeften te voldoen, welwillend of niet.
Typecasting naar ongeloof
Wanneer is een float-variabele geen float? Wanneer het in een int typeert, natuurlijk. Deze truc is mogelijk gemaakt in C door de typecast te gebruiken. Bijvoorbeeld:
(int) schuld
In de voorgaande regel typeert de zwevende variabele schuld zich tot een int-waarde. De int tussen haakjes geeft de compiler opdracht om de waarde van schuld te behandelen als een geheel getal.
Waarom zou iemand dat willen doen?
Omdat een functie soms een specifiek variabelentype vereist en dat type niet beschikbaar is. In plaats van meerdere variabelietypen in één programma te converteren en te jongleren, kunt u eenvoudig een variabele in het type typen dat u wenst. Het is geen gewoon trucje, maar het is vaak nodig, zoals te zien in That's Not Right.
DAT IS NIET JUIST
# include int main () {int a, b; zweven c; printf ("Voer de eerste waarde in:"); scanf ("% d", & a); printf ("Voer de tweede waarde in:"); scanf ("% d", & b); c = a / b; printf ("% d /% d =%. 2fn", a, b, c); return (0);}
Oefening 1: Typ de broncode van That's Not Right in je editor. Bouw en ren.
Dit is een voorbeeldrun met de invoer vetgedrukt:
Voer de eerste waarde in: 3 Voer de tweede waarde in: 2 3/2 = 1. 00
Het is duidelijk verkeerd dat 3 ÷ 2 op één of andere manier zou uitkomen op 1. 50. Als de computer zegt dat het 1.00 is, moet de computer correct zijn.
Of misschien is de computer slechts verward omdat in regel 12 van de broncode twee int-waarden zijn verdeeld en het resultaat is toegewezen aan een float. Dat werkt echter niet helemaal, omdat het delen van een geheel getal door een geheel getal in C een geheel getal oplevert als resultaat.
De waarde 1 is de grootste gehele waarde tot 1. 50. Dus hoewel de computer verkeerd is, doet hij precies wat hem gezegd was.
Oefening 2: Pas uw broncode aan, verander lijn 12 om
te lezen c = (float) a / (float) b;
Sla de wijziging op. Bouw en voer dezelfde waarden uit als net getoond. Hier is de nieuwe uitgang:
Voer de eerste waarde in: 3 Voer de tweede waarde in: 2 3/2 = 1. 50
Beter. Dat komt omdat je variabelen a en b in de vergelijking typeert, waardoor de compiler ze tijdelijk als drijvende-kommagetallen kan behandelen. Daarom is het resultaat wat het zou moeten zijn. Nieuwe dingen maken met
typedef U kunt heel veel problemen krijgen met het trefwoord typedef.Het kan normale C woorden en operatoren uit hun consistente zelf in allerlei onheil storten.
DE GEWICHTEN VAN
TYPEDEF # omvatten typedef int stinky; stinky main () {stinky a = 2; printf ("Iedereen weet dat"); printf ("% d +% d =% dn", a, a, a + a); return (0);}
In The Perils van
typedef definieert de typedefinitie op regel 3 dat het woord stinky hetzelfde is als het trefwoord int. Overal waar je int in de code kunt gebruiken, kun je in plaats daarvan het woord stinky gebruiken, zoals getoond op Lijnen 5 en 7. Oefening
3: Gebruik de broncode van The Perils of typedef < om een nieuw programma te maken, dat aantoont dat een stinky variabelentype hetzelfde is als een int. Bouw en ren. Toegegeven, het voorbeeld in The Perils van typedef
is nogal dom; geen serieuze programmeur zou zo'n echt programma opzetten. Waar typedef het meest wordt gebruikt, is het definiëren van structuren. De verklaring typedef helpt om de broosheid van die activiteit te verminderen. Een structuur maken op de traditionele manier laat zien hoe geneste structuurbewerking werkt, gegeven kennis van structuren: EEN STRUCTUUR CREËREN DE TRADITIONELE WEG
struct id {char first [20]; char laatste [20];}; struct date {int month; int dag; int jaar;}; struct human {struct id name; struct date verjaardag;};
t
ypedef gebruiken om een structuur te definiëren laat zien hoe de verklaringen plaatsvinden als u de structuren zou typen: GEBRUIK VAN TYPEDEF
EEN STRUCTUUR DEFINIËREN > typedef struct id {char first [20]; char laatste [20];} persoonlijk; typedef struct date {int month; int dag; int jaar;} kalender; struct human {personal name; kalender verjaardag;}; In deze lijst wordt de structuur-ID getypt aan de naam persoonlijk. Dat is geen variabele naam; het is een typedef. Het is hetzelfde als zeggen: "Alle verwijzingen naar struct id zijn nu hetzelfde als de naam persoonlijk. " Evenzo wordt de structuurdatum getypt in de kalender. Ten slotte worden in de verklaring van de structuurmens de getypte namen gebruikt in plaats van de meer complexe structuurdefinities.
NESTED STRUCTURE
# include #include int main () {struct date {int month; int dag; int jaar;}; struct human {char name [45]; struct date verjaardag;}; struct human president; strcpy (president, naam, "George Washington"); president. verjaardag. maand = 2; president. verjaardag. dag = 22; president. verjaardag. jaar = 1732; printf ("% s werd geboren op% d /% d /% dn", president. naam, president. verjaardag. maand, president. verjaardag. dag, president. verjaardag. jaar); return (0);}
Oefening 4
:
Vervang het
naam -lid in de menselijke structuur in een geneste structuur met een geneste structuur. Geef die structuur-id een naam en laat deze twee leden bevatten, char-arrays, eerste en laatste, voor het opslaan van de voor- en achternaam van een persoon. Als u alles correct doet, wordt de naam van de voorzitter de president van de variabelen . naam. eerste en
president. naam. laatste . Zorg ervoor dat u waarden aan deze variabelen in uw code toewijst en de resultaten weergeeft. Oefening 5 : Wijzig de broncode van het project dat u in Oefening 4 maakt om typedef te gebruiken, zoals wordt getoond in Gebruik van
t ypedef om een structuur te definiëren. Bouw en ren. Er kan worden gesteld dat het gebruik van typedef uw code niet duidelijker maakt dan wanneer u eenvoudigweg de namen van de goede variabelen en de goed opgemaakte tekst had gebruikt. U kunt bijvoorbeeld typedef niet gewoon gebruiken omdat u niet wilt onthouden wat u hebt gedefinieerd. Maar u zult andere code tegenkomen die typedef gebruikt. Laat het je niet in de war maken. Het echte voordeel van het gebruik van typedef met een structuur is dat het u mogelijk niet in staat stelt het woord te vaak te typen.