1. We have moved from vBulletin to XenForo and you are viewing the site in the middle of the move. Though the functional aspect of everything is working fine, we are still working on other changes including the new design on Xenforo.
    Dismiss Notice

typedef Vs #define

Discussion in 'C' started by kanaks_go4ex, Aug 29, 2008.

  1. kanaks_go4ex

    kanaks_go4ex New Member

    Joined:
    Jun 11, 2008
    Messages:
    16
    Likes Received:
    0
    Trophy Points:
    0
    Hello guys,

    What is the difference between typedef and #define?

    thanks
    -kanaks
     
  2. oogabooga

    oogabooga New Member

    Joined:
    Jan 9, 2008
    Messages:
    115
    Likes Received:
    11
    Trophy Points:
    0
    There are two differences between define and typedef.

    Firstly, typedef obeys scoping rules just like variables, whereas define
    stays valid until the end of the file (or until a matching undef).

    Secondly, some things can be done with typedef that cannot be done with define.
    Examples:
    Code:
    typedef int* int_p1;
    int_p1 a, b, c;  // a, b, and c are all int pointers.
    
    #define int_p2 int*
    int_p2 a, b, c;  // only the first is a pointer!
    
    Code:
    typedef int a10[10];
    a10 a, b, c; // create three 10-int arrays
    
    Code:
    typedef int (*func_p) (int);
    func_p fp // func_p is a pointer to a function that
              // takes an int and returns an int
    
     
  3. kanaks_go4ex

    kanaks_go4ex New Member

    Joined:
    Jun 11, 2008
    Messages:
    16
    Likes Received:
    0
    Trophy Points:
    0
    cool..!
    thanks.
     

Share This Page