Tuesday 3 February 2015

Technical round Embedded Systems Interview Questions and Answers (Part4)

16. Write a constant time consuming statement lot finding out If a given number Is a power of 2?
If n is the given number, then the expression (n & (n-1)) = 0 gives the logical output depicting if it is a power of 2 or not, if (n & (n-1) == 0) printf (“The given
number is a power of 2”);

17. What are recursive functions? Can we make them in line?
The recursive functions refer to the functions which make calls to itself  before giving out the final result. These can be declared as in-line functions and the compiler will allocate the memory space intended for the first call of the function.

18. What is the size of the int, char and float data types?
The size of the char and int are always dependent on the underlying operating system or firmware. This is limited to the number of address lines in the address bus.
The int usually takes up a value of 2 bytes or 4 bytes. The char can take up a space of 1 or 2 bytes. The float data type takes up a value of 4 bytes.

19. What does malloc do? What will happen if we have a statement like malloc(sizeof(0));
Malloc is the function that is used for dynamically allocating memory to the different variables. The malloc returns a memory pointer of void type (void *). The statement malloc(sizeof(0)) returns a valid integer pointer because sizeof(0) represents the size of memory taken up by the integer value of 0. The memory allocated by memory is not automatically cleaned up by the compiler after execution of the functions and should be cleaned up by the programmer using the free() function.

20. What is meant by a forward reference in C?
The forward reference refers to the case when we point an address space of a smaller data type with a pointer of a bigger data type This can be pictured as allocating memory in single bytes and accessing it with integer pointer as chunks of 4.
More Questions & Answers :-
Part1  Part2  Part3  Part4  Part5  Part6  Part7

No comments:

Post a Comment