Code: #define square(x) x*x main() { int i; i=64/square(4); printf("%d",i); } the result obtained for this 64 how it is so?? i thought 64/square(4) will be 64/4*4 = 64/16 which will be 4... but the result is not so why.. what happens
64/4*4 64/4 = 16 16*4 = 64 If you're going to use macros, you better learn that you need to parenthesize the hell out of them. You would be much wiser to write the function.
hi priyabc, you should try something like this Code: #define square(x) x*x main() { int i; i=(64)/(square(4)); printf("%d",i); } this mean (64) / (4 * 4) = (64)/(16) = 4
You guys don't listen well. If you must use a macro, do it right. Also, kaustub, the C standard defines main as returning an int. Please don't teach bad habits. Code: #include <stdio.h> #define square(x) (x*x) int main () { int i = 64 / square(4); printf ("%d", i); return 0; }
hi dawei, she must be beginner. Most books of beginners written about 5 to 10 years ago didn't contain standard c or c++ . I will try to use known c /c++ standards in posts in future.
The C standards were issued in 1989/90 and 1999. There are lots of compilers that don't completely conform and lots of books and tutorials (including by MS) that teach faulty C.