#include<stdio.h>
#define x -100
int main()
{
int x;
#ifdef x
printf("Hello friend\n");
#else
printf("Hello enemy\n");
#endif
return 0;
}
- Hello friend
- Hello enemy
- Compiler error
- Hello friend Hello enemy
Compiler error
The preprocessor replace int x; as int -100; so the compiler produce expected identifier error. If the statement int x; is not there then the output is Hello friend
The preprocessor replace int x; as int -100; so the compiler produce expected identifier error. If the statement int x; is not there then the output is Hello friend
2.What is the output of the following program?
#include<stdio.h>
#define ZERO 0
int main()
{
#ifdef ZERO
printf("Zero defined\n");
#endif
#ifndef ZERO
printf("Zero undefined\n");
#endif
return 0;
}
Solution
Zero defined
3.What is the output of the following program?
#include<stdio.h>
#define ADD(X,Y) X+Y
int main()
{
#undef ADD
fun();
return 0;
}
void fun()
{
#ifndef ADD
#define ADD(X,Y) X*Y
#endif
int z=ADD(3,2);
printf("z=%d",z);
}
Solution
z=6
4.What is the output of the folowing program?
#include<stdio.h>
#define ADD(X,Y) X+Y
int main()
{
#undef ADD
fun();
return 0;
}
void fun()
{
#ifndef ADD
#define ADD(X+Y) X*Y
#endif
int z=ADD(3,2);
printf("z=%d",z);
}
Solution
Compier error: "+" may not appear in macro parameter list
5.What is the output of the following program?
#include<stdio.h>
#ifdef TRUE
int X=0;
#endif
int main()
{
int Y=1,Z=2;
printf("X=%d,Y=%d,Z=%d\n",X,Y,Z);
return 0;
}
Solution
Compier error: X undecared
6.What is the output of the folowing program?
#include<stdio.h>
#undef _FILE_
#define _FILE_ "WELCOME"
int main()
{
int Y=1,Z=2;
printf("%s\n",_FILE_);
return 0;
}
- Compilation Error
- Run Time Error
- Compiles But gives a warning
- Compiles Normally
4.Compies Normally.
The program compiles without error and produce output as WELCOME
The program compiles without error and produce output as WELCOME
7.What is the output of the following program?
#include<stdio.h>
#pragma pack(2)
struct SIZE
{
int i;
char ch;
double db;
};
int main()
{
printf("size=%d\n",sizeof(struct SIZE));
return 0;
}
- 12
- 14
- 16
- 8
2.14
size of int 4 bytes,char 1 byte and doube 8 bytes. each member alignment take 1 byte.integer is packed to 2 bytes. so 14 bytes.
#pragma pack(2) directive would cause that member to be packed in the structure on a 2-byte boundary.If #pragma pack(2) line is not there then the output is 16.and if #pragma pack(4) is there then there is no effect.and output is same as original 16
8.What is the output of the following program?
#include<stdio.h>
#if something==0
int some=0;
#endif
int main()
{
int thing=0;
printf("some=%d,thing=%d\n",some,thing);
return 0;
}
Solution
some=0 thing=0
No comments:
Post a Comment