Structure
declaring a structure and the process of
defining a structure variable can be combined into one step. Combining the
declaration and the variable definitions, as shown here, is the one
circumstance in which a tag need not be used:
struct
{ /* no tag */
char title[MAXTITL];
char author[MAXAUTL];
float value;
} library;
Example
#include <stdio.h>
#define MAXTITL 40
#define MAXAUTL 40
#define MAXBKS 100 /* maximum number of books */
struct book { /* set up book template */
char title[MAXTITL];
char author[MAXAUTL];
float value;
};
int main(void)
{
struct book library[MAXBKS];
/* array of book structures */
int count = 0;
int index;
printf("Please enter the
book title.\n");
printf("Press [enter] at
the start of a line to stop.\n");
while (count < MAXBKS
&& gets(library[count].title) != NULL
&& library[count].title[0] != '\0')
{
printf("Now enter
the author.\n");
gets(library[count].author);
printf("Now enter
the value.\n");
scanf("%f",
&library[count++].value);
while (getchar() != '\n')
continue; /* clear input line */
if (count < MAXBKS)
printf("Enter the
next title.\n");
}
if (count > 0)
{
printf("Here is the
list of your books:\n");
for (index = 0; index
< count; index++)
printf("%s by %s:
$%.2f\n", library[index].title,
library[index].author,
library[index].value);
}
else
printf("No books?
Too bad.\n");
}
union
A union is a type that
enables you to store different data types in the same memory space
union hold {
int digit;
double bigfl;
char letter;
};
Example
#include <stdio.h>
#include <string.h> //
for strcmp()
#include <stdbool.h> //
C99 feature
enum spectrum {red, orange, yellow, green, blue, violet};
const char * colors[] = {"red", "orange",
"yellow",
"green", "blue", "violet"};
#define LEN 30
int main(void)
{
char choice[LEN];
enum spectrum color;
bool color_is_found = false
puts("Enter a color
(empty line to quit):");
while (gets(choice) != NULL
&& choice[0] != '\0')
{
for (color = red; color
<= violet; color++)
{
if (strcmp(choice,
colors[color]) == 0)
{
color_is_found =
true;
break;
}
}
if (color_is_found)
switch(color)
{
case red : puts("Roses are red.");
break;
case orange :
puts("Poppies are orange.");
break;
case yellow :
puts("Sunflowers are yellow.");
break;
case green : puts("Grass is green.");
break;
case blue : puts("Bluebells are blue.");
break;
case violet :
puts("Violets are violet.");
break;
}
else
printf("I don't
know about the color %s.\n", choice);
color_is_found = false;
puts("Next color,
please (empty line to quit):");
}
puts("Goodbye!");
return 0;
}
0 Comment "Estimates the declaring structure and unions variables with example program"
Post a Comment