Question 1 :
Is the following declaration acceptable?
typedef long no, *ptrtono; no n; ptrtono p;
Question 2 :
Is there any difference in the #define and typedef in the following code?
typedef char * string_t; #define string_d char *; string_t s1, s2; string_d s3, s4;
In these declarations, s1, s2 and s3 are all treated as char*, but s4 is treated as a char, which is probably not the intention.
Question 3 :
Are the properties of i, j and x, y in the following program same?
typedef unsigned long int uli; uli i, j; unsigned long int x, y;
Question 4 :
typedef's have the advantage that they obey scope rules, that is they can be declared local to a function or a block whereas #define's always have a global effect.