Operations On Structures: The Other Way Is To Use - E.g.: Structure Variables of Struct Type Can Be Declared As Follows
Operations On Structures: The Other Way Is To Use - E.g.: Structure Variables of Struct Type Can Be Declared As Follows
Structures
Declaration and Initialization
Operations on Structures
Using Typedef
The other way is to use typedef.
E.g.: structure variables of struct type myType can be declared as
follows.
typedef struct {
i n t number ;
c h a r name [MAXLEN+ 1 ] ;
int extra ;
} myType ; // myType can be u s e d a s a c o n v e n t i o n a l t y p e
myType s1 , s 2 ; // p r e f i x s t r u c t n o t r e q u i r e d now
Structure as Arguments
Example
t y p e d e f s t r u c t { // D e f i n i n g a s t r u c t u r e a s a t y p e
c h a r name [MAXLEN+ 1 ] ;
char sex ;
i n t a ge ;
i n t code ;
} p a r t ; // Comma r e q u i r e d
p a r t c o n s t r u c t ( c h a r ∗name , c h a r s e x , i n t age , i n t c o d e ) {
part p ;
// C r e a t e s t r u c t u r e w i t h i n p u t p a r a m e t e r s
s t r c p y ( p . name , name ) ;
p . age = age ;
p . code = code ;
p . sex = sex ;
r e t u r n p ; // R e t u r n t h e s t r u c t u r e
}
Structure as Arguments
Example
i n t r e a d L i n e ( c h a r s t r [ ] ) { // R e a d i n g a s t r i n g f o r name
i n t ch , i = 0 ;
w h i l e ( ( ch = g e t c h a r ( ) ) != ’ \n ’ )
i f ( i < MAXLEN)
s t r [ i ++] = ch ;
s t r [ i ] = ’ \0 ’ ;
return i ;
}
void p r i n t S t r u c t ( part p) {
p r i n t f ( ”%s ” , p . name ) ;
p r i n t f ( ”%c ” , p . sex ) ;
p r i n t f ( ”%d ” , p . a ge ) ;
p r i n t f ( ”%d \n” , p . c o d e ) ;
}
Structure as Arguments
Example
i n t main ( ) {
c h a r name [MAXLEN+1] , s ;
int a , c ;
part record ;
p r i n t f ( ” E n t e r name : ” ) ;
r e a d L i n e ( name ) ;
p r i n t f (” Enter gender : ” ) ;
s c a n f ( ”%c ” , &s ) ;
p r i n t f ( ” E n t e r a ge : ” ) ;
s c a n f ( ”%d” , &a ) ;
p r i n t f ( ” Enter code : ” ) ;
s c a n f ( ”%d” , &c ) ;
r e c o r d = c o n s t r u c t ( name , s , a , c ) ;
printStruct ( record );
}
/∗ ∗∗ R e s t o f t h e program ∗∗ ∗/
}
s = allocString ( len );
s r a n d ( ( u n s i g n e d i n t ) t i m e (NULL ) ) ;
f o r ( i = 0 ; i < l e n ; i ++)
s [ i ] = r a n d ( ) % 26 + ’ a ’ ;
s [ l e n ] = ’ \0 ’ ;
p r i n t f ( ”%s \n” , s ) ;
free (s );