 Primitive Syntax :
 typedef existing-type new-name ;
 Examples:
Is this correct / valid?
How do I type define an String
 In the above declaration, SavingsAccount is
an Variable or Typedefinition?.
 P1 is pointer to const
 P2 is constant pointer
 P3 is constant pointer
 P4 is constant pointer
int main( )
{
#define PI 3.14
int r = 3;
float area = PI * r * r;
printf(" %f",area);
}
void calculateArea( );
int main( )
{
#define PI 3.14
calculateArea( );
}
void calculateArea( )
{
int r = 3;
float area = PI * r * r;
printf(" %f",area);
}
void calculateArea( );
int main( )
{
#define PI 3.14
int r = 3;
float area = PI * r * r;
printf(" %f",area);
calculateArea( );
}
void calculateArea( )
{
int r = 3;
float area = PI * r * r;
printf(" %f",area);
}
void calculateArea( );
int main( )
{
#define PI 3.14
int r = 3;
float area = PI * r * r;
printf(" %f",area);
#undef PI
calculateArea( );
}
void calculateArea( )
{
int r = 3;
float area = PI * r * r;
printf(" %f",area);
}
void calculateArea( );
int main( )
{
#define PI 3.14
int r = 3;
float area = PI * r * r;
printf(" %f",area);
calculateArea( );
#undef PI
}
void calculateArea( )
{
int r = 3;
float area = PI * r * r;
printf(" %f",area);
}
1. int main( )
2. {
3. int a = 5;
4. if( a )
5. printf(“if executed");
6. #if (a)
7. printf("#if executed");
8. #endif
9. }
a) Compilation Error in Line 6
b) Both printf are executed
c) Only the first pf is executed
1. #define a 0
2. int main( )
3. {
4. if( a )
5. {
6. #ifdef a
7. printf(“A")
8. #endif
9. }
10. }
a) No Error, No Output
b) Error in printf - ; missing
1. #define a 0
2. int main( )
3. {
4. if( a )
5. {
6. #if a
7. printf(“A")
8. #endif
9. }
10. }
#define MAYUR 0
int main( )
{
#if MAYUR
printf("#if executed");
#endif
#ifdef MAYUR
printf("#ifdef executed");
#endif
}
int main( )
{
#ifdef MAYUR
printf("#ifdef executed");
#endif
}
gcc file.c -DMAYUR

Questions typedef and macros

  • 2.
     Primitive Syntax:  typedef existing-type new-name ;  Examples:
  • 4.
    Is this correct/ valid? How do I type define an String
  • 10.
     In theabove declaration, SavingsAccount is an Variable or Typedefinition?.
  • 12.
     P1 ispointer to const  P2 is constant pointer  P3 is constant pointer  P4 is constant pointer
  • 13.
    int main( ) { #definePI 3.14 int r = 3; float area = PI * r * r; printf(" %f",area); }
  • 14.
    void calculateArea( ); intmain( ) { #define PI 3.14 calculateArea( ); } void calculateArea( ) { int r = 3; float area = PI * r * r; printf(" %f",area); }
  • 15.
    void calculateArea( ); intmain( ) { #define PI 3.14 int r = 3; float area = PI * r * r; printf(" %f",area); calculateArea( ); } void calculateArea( ) { int r = 3; float area = PI * r * r; printf(" %f",area); }
  • 16.
    void calculateArea( ); intmain( ) { #define PI 3.14 int r = 3; float area = PI * r * r; printf(" %f",area); #undef PI calculateArea( ); } void calculateArea( ) { int r = 3; float area = PI * r * r; printf(" %f",area); } void calculateArea( ); int main( ) { #define PI 3.14 int r = 3; float area = PI * r * r; printf(" %f",area); calculateArea( ); #undef PI } void calculateArea( ) { int r = 3; float area = PI * r * r; printf(" %f",area); }
  • 17.
    1. int main() 2. { 3. int a = 5; 4. if( a ) 5. printf(“if executed"); 6. #if (a) 7. printf("#if executed"); 8. #endif 9. } a) Compilation Error in Line 6 b) Both printf are executed c) Only the first pf is executed
  • 18.
    1. #define a0 2. int main( ) 3. { 4. if( a ) 5. { 6. #ifdef a 7. printf(“A") 8. #endif 9. } 10. } a) No Error, No Output b) Error in printf - ; missing 1. #define a 0 2. int main( ) 3. { 4. if( a ) 5. { 6. #if a 7. printf(“A") 8. #endif 9. } 10. }
  • 20.
    #define MAYUR 0 intmain( ) { #if MAYUR printf("#if executed"); #endif #ifdef MAYUR printf("#ifdef executed"); #endif }
  • 21.
    int main( ) { #ifdefMAYUR printf("#ifdef executed"); #endif } gcc file.c -DMAYUR

Editor's Notes

  • #7 #include <stdio.h> #include <stdlib.h> #include <stddef.h> #include <iostream> int add(int a,int b) { return a + b; } int sub(int a,int b) { return a - b; } int (*myfunc(int ch))(int,int) { if(ch == 1) return add; else return sub; } int main( ) { int (*pf)(int,int) = myfunc(2); printf(" %d " , pf(3,6)); }
  • #10 #include <stdio.h> typedef struct Employee { int regNo; char name[20]; }; typedef struct { int accountNumber; char name[20]; int balance; }Account; typedef struct Node { int data; struct Node *link; }NODE_t; int main( ) { Account savingsAccount = {1 ,"abcd",5000}; struct Node *head; NODE_t *newNode; }