11. What is C standard?
The latest C standard is ISO/IEC 9899:2011, also known as C11 as the final draft was published in 2011. Before C11, there was C99. The C11 final draft is available here. See this for complete history of C standards.
The latest C standard is ISO/IEC 9899:2011, also known as C11 as the final draft was published in 2011. Before C11, there was C99. The C11 final draft is available here. See this for complete history of C standards.
12. What is the output of the following program? Why?
#include<stdio.h>main() {typedef union {int a;char b[10];float c;}Union;Union x,y = {100};x.a = 50;strcpy(x.b,"hello");x.c = 21.50;printf("Union x : %d %s %f n",x.a,x.b,x.c);printf("Union y : %d %s %f n",y.a,y.b,y.c);}
13. What does static variable mean?
There are 3 main uses for the static.
1. If you declare within a function:
It retains the value between function calls
2.If it is declared for a function name:
By default function is extern..so it will be visible from
other files if the function declaration is as static..it is invisible for the
outer files
3. Static for global variables:
By default we can use the global variables from outside
files If it is static global..that variable is limited to with in the
file
14. What are the advantages of a macro over a function?
Macro gets to see the Compilation environment, so it can
expand __ __TIME__ __FILE__ #defines. It is expanded by the preprocessor.
For example, you can’t do this without macros
#define PRINT(EXPR) printf( #EXPR “=%d\n”, EXPR)
PRINT( 5+6*7 ) // expands into printf(”5+6*7=%d”, 5+6*7 );
You can define your mini language with macros:
#define strequal(A,B) (!strcmp(A,B))
Macros are a necessary evils of life. The purists don’t like
them, but without it no real work gets done.
15. What are the differences between malloc() and calloc()?
There are 2 differences.
First, is in the number of arguments. malloc() takes a
single argument(memory required in bytes), while calloc() needs 2
arguments(number of variables to allocate memory, size in bytes of a
single variable).
Secondly, malloc() does not initialize the memory allocated,
while calloc() initializes the allocated memory to ZERO.
No comments:
Post a Comment