What is the difference between macros and inline functions?
Answers were Sorted based on User's Feedback
Answer / kiran kumar yakkala
Macro- does not involve in compilation if there is any
logical error also just replaces the code
inline- look like function, but control doesn't goes to
fucntion and execute, it simply replaces the code like
macro but involves in compilation.
| Is This Answer Correct ? | 9 Yes | 2 No |
Answer / karna
when macro function executing the program control go to that macro function definition part
when inline function executed the definition part of function
came in inline functin call part and executed...program control not chance in any where of the program...
| Is This Answer Correct ? | 7 Yes | 3 No |
Answer / rahul sharma
Macro is a must do thing whearas inline is a hint to the compiler. he may choose not to inline if the function seems complex (it uses recursion or many loops)
Macro can have side effects e.g. the typical
SQUARE(++i); problem
but these problem are not there in inline functions
| Is This Answer Correct ? | 2 Yes | 0 No |
Answer / vishal
1> Macros are always expanded by pre-processor, whereas compiler may or may not replace the inline definitions. You cant force compiler to make a function inline. It is purely compiler based decision.
2> Debugging macros is also difficult.
3> Expressions passed as arguments to inline functions are evaluated once. In some cases, expressions passed as arguments to macros can be evaluated more than once.
Here i got exact answer : http://www.firmcodes.com/difference-macro-inline-c/
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / jayapradap a
the way they are handled. Inline functions are parsed by the compiler, whereas macros are expanded by the C++ preprocesso these are The major difference between inline functions and macros
| Is This Answer Correct ? | 0 Yes | 0 No |
in C-programming language without using printf statement can we get output r not ? if yes how and if no also how ?
a number whose only prime factors are 2,3,5, and 7 is call humble number,,write a program to find and display the nth element in this sequence.. sample input : 2,3,4,11,12,13, and 100.. sample output : the 2nd humble number is 2,the 3rd humble number is 3,the 4th humble number is ,the 11th humble number is 12, the 12th humble number is 14, the 13th humble number is 15, the 100th humble number is 450.
How do we swap or interchange any 2 numbers without using Temporary variable...Anybody can pls answer it.. Thanks in Advance
main() { int i; printf("%d",scanf"%d",&i))//if the input is 12 24 34 then wat will be the output }
What are the types of operators in c?
what is void pointer?
How can I call a function with an argument list built up at run time?
c language interview questions & answer
int *p=20; if u print like dis printf("%d",p); o\p:- 20; how is it possible? plz give me the explanation.
can any one tel me wt is the question pattern for NIC exam
What is ## preprocessor operator in c?
Where are the auto variables stored?