C Programming - C Preprocessor - Discussion
Discussion Forum : C Preprocessor - Find Output of Program (Q.No. 4)
4.
What will be the output of the program?
#include<stdio.h>
#define JOIN(s1, s2) printf("%s=%s %s=%s \n", #s1, s1, #s2, s2);
int main()
{
char *str1="India";
char *str2="BIX";
JOIN(str1, str2);
return 0;
}
Discussion:
35 comments Page 1 of 4.
Nachiyappan said:
2 decades ago
Is it possible to print value through pre-processor ?
Vasuuma said:
2 decades ago
# mean to variable name. so #s1 gives output as str1
Krishz said:
1 decade ago
Ya you are right vasuuma:-).
Prasad Shinde said:
1 decade ago
# means a concatenation operator in C.
It concats 2 strings.
It concats 2 strings.
Nikhil said:
1 decade ago
## concatenates not a single #
Rohit said:
1 decade ago
To concatenate we use dobule hash but single can also do this
Vijendra said:
1 decade ago
What will be the answer the S1, S2?
Wikiok said:
1 decade ago
#define JOIN(s1, s2) printf("%s=%s %s=%s \n", #s1, s1, #s2, s2);
after preprocessing:
printf("%s=%s %s=%s \n", "str1", str1, "str2", str2);
so:
parameter -> parameter
#parameter -> "parameter"
param1##param2 -> param1param2
Or not? :-)
after preprocessing:
printf("%s=%s %s=%s \n", "str1", str1, "str2", str2);
so:
parameter -> parameter
#parameter -> "parameter"
param1##param2 -> param1param2
Or not? :-)
Vishal said:
1 decade ago
I am not getting it. Any one can explain it properly please.
Arun said:
1 decade ago
#s1,#s2 - this will print the variable name which has been declared with the join
s1,s2 - which will display the characters
str1 and str2 are the variables and *str1 and * str2 are the pointers which has declred as char.
s1,s2 - which will display the characters
str1 and str2 are the variables and *str1 and * str2 are the pointers which has declred as char.
Post your comments here:
Quick links
Quantitative Aptitude
Verbal (English)
Reasoning
Programming
Interview
Placement Papers