what is the disadvantage of using macros?
Though, macro has advantages... it hav few disadvantages
too...
------------------------------------------------------------
1.1st disadvantage is, In debugging time u can't see the
value of the macro assigned to it.
So, u have to have ur source file, to fine out the value of
the macro.
But nowadays there are some debuggers which are capable of
showing the value of macro in debugging time.
------------------------------------------------------------
2.Dont use macro for typedef or be cautious before use.
Ex:
lets say, u wanted to have a macro, which can be used to
represent a declaration to an int pointer
#define INTPTR int*
in main..
main()
{
INTPTR a, p;
/*here, our understanding will be 'a' and 'p' both are int
pointers*/
}
but in preprocessor time macro shall be replaced like this -
> int* a, p;
so only 'a' will be treated as int pointer and 'p' shall a
normal int variable.
So tyr to avoid using MACRO for typedef.
use -> typedef int* INTPTR, So that u can achieve desired
result.
------------------------------------------------------------
3.Be carefull while using macro in arithmatic operation.
Ex:
#define MUL(a,b) a*b
In main...
main()
{
int a = 3, b = 4;
....
....
.....
printf("%d", MUL(a+1, b+1));
/*Here u may expect the result 4 * 5 = 20 but the result
would be 8*/
}
lets analise,
in preprocessing time macro shall be replaced as below;
MUL(a+1, b+1) - > 3+1*4+1, so result would be 8.
To avoid the unexpected result.
Define macro lik ...
#define MUL(a,b) (a)*(b)
------------------------------------------------------------
| Is This Answer Correct ? | 5 Yes | 3 No |
who is the editor of 'pokemon'?
the format specified for hexa decimal is a.%d b.%o c.%x d.%u
What is the use of keyword VOLATILE in C?
Are negative numbers true in c?
WRITE A C PROGRAM TO FIND SECOND BIGGEST VALUE FROM THE GIVEN VALUES
A function 'q' that accepts a pointer to a character as argument and returns a pointer to an array of integer can be declared as: A)int (*q(char*)) [] B)int *q(char*) [] C)int(*q)(char*) [] D)None of the Above
difference between string and array?
write a program that prints a pascal triangle based on the user input(like how many stages) in an efficient time and optimized code?
What does & mean in scanf?
player is good if the following conditions are satisfied: He is either from “India”, “Japan” or “Korea” He has a minimum of 3 years of experience He has won at least 3 major tournaments, and one of them must be "World Championship Tournament". He must know more than 10 techniques. (but see next question) If he knows less than 10 techniques, then he must be a world champion. His name contains at least 3 words. For example "Sachin Tendulkar" will not meet this condition. Write a method: boolean isGoodPlayer(String name, String country, int yearsExperience, String[] majorTournamentsWon, String[] techniques, boolean isWorldChampion) name country yearsExperience majorTournamentsWon techniques isWorldChampion
What are local static variables?
what will be printed by this printf? printf("%c",printf("hi")["sharkselva"])); }