C Interview Questions

Showing Questions 521 - 540 of 758 Questions
First | Prev | Next | Last Page
Sort by: 
 | 
Jump to Page:
  •  

    Can a file other than a .h file be included with #include?

    The preprocessor will include whatever file you specify in your #include statement. Therefore, if you have the line  #include <macros.inc> in your program, the file macros.inc will be included in your precompiled program. It is, however, unusual programming practice to put any file that does not have a .h or .hpp extension in an #include statement. You should always put a .h extension on...

    kaushik

    • Jul 11th, 2007

    No

  •  

    How are portions of a program disabled in demo versions?

    If you are distributing a demo version of your program, the preprocessor can be used to enable or disable portions of your program. The following portion of code shows how this task is accomplished, using the preprocessor directives #if and #endif: int save_document(char* doc_name) { #if DEMO_VERSION printf(“Sorry! You can’t save documents using the DEMO version of this program!n”); return(0); #endif...

  •  

    Is it better to use a macro or a function?

    The answer depends on the situation you are writing code for. Macros have the distinct advantage of being more efficient (and faster) than functions, because their corresponding code is inserted directly into your source code at the point where the macro is called. There is no overhead involved in using a macro like there is in placing a call to a function. However, macros are generally small and...

  •  

    How can type-insensitive macros be created?

    A type-insensitive macro is a macro that performs the same basic operation on different data types. This task can be accomplished by using the concatenation operator to create a call to a type-sensitive function based on the parameter passed to the macro. The following program provides an example: #include <stdio.h> #define SORT(data_type) sort_ ## data_type void sort_int(int** i); void sort_long(long**...

  •  

    What is the difference between a string copy (strcpy) and a memory copy (memcpy)? When should each be used?

    The strcpy() function is designed to work exclusively with strings. It copies each byte of the source string to the destination string and stops when the terminating null character () has been moved. On the other hand, the memcpy() function is designed to work with any type of data. Because not all data ends with a null character, you must provide the memcpy() function with the number of bytes you...

    Prasadu

    • Oct 17th, 2007

    We can specify number of bytes that we want to copy.

  •  

    How can I convert a string to a number?

    The standard C library provides several functions for converting strings to numbers of all formats (integers, longs, floats, and so on) and vice versa.  The following functions can be used to convert strings to numbers: Function Name Purpose atof() Converts a string to a double-precision floating-point value. atoi() Converts a string to an integer. atol() Converts a string to a long integer....

  •  

    What is indirection?

    If you declare a variable, its name is a direct reference to its value. If you have a pointer to a variable, or any other object in memory, you have an indirect reference to its value.  

  •  

    Is NULL always defined as 0?

    NULL is defined as either 0 or (void*)0. These values are almost identical; either a literal zero or a void pointer is converted automatically to any kind of pointer, as necessary, whenever a pointer is needed (although the compiler can’t always tell when a pointer is needed).  

  •  

    When would you use a pointer to a function?

    Pointers to functions are interesting when you pass them to other functions. A function that takes function pointers says, in effect, “Part of what I do can be customized. Give me a pointer to a function, and I’ll call it when that part of the job needs to be done. That function can do its part for me.” This is known as a “callback.” It’s used a lot in graphical user interface libraries, in which...

    abhimanipal

    • Jan 30th, 2010

    Another application could be when the function is not located in the code segment. Many time the size of the Source code is greater than 64 KB.  In such a scenario if we want to call a function, we have to use a far pointer to call that function. Not sure though

  •  

    Is it better to use malloc() or calloc()?

    Both the malloc() and the calloc() functions are used to allocate dynamic memory. Each operates slightly different from the other. malloc() takes a size and returns a pointer to a chunk of memory at least that big:  void *malloc( size_t size ); calloc() takes a number of elements, and the size of each, and returns a pointer to a chunk of memory at least big enough to hold them all: void *calloc(...

  •  

    Can the size of an array be declared at runtime?

    No. In an array declaration, the size must be known at compile time. You can’t specify a size that’s known only at runtime. For example, if i is a variable, you can’t write code like this: char array[i]; /* not valid C */ Some languages provide this latitude. C doesn’t. If it did, the stack would be more complicated, function calls would be more expensive, and programs would run a lot slower. If you...

    M. PAVAN KUMAR REDDY

    • Jan 18th, 2007

    If you need this type of behavior, you have to use dynamic memory.You can try this:void main(){    int *ptr = NULL;    int arr_size;    printf("Enter the s...

  •  

    What is the heap?

    The heap is where malloc(), calloc(), and realloc() get memory. Getting memory from the heap is much slower than getting it from the stack. On the other hand, the heap is much more flexible than the stack. Memory can be allocated at any time and deallocated in any order. Such memory isn’t deallocated automatically; you have to call free(). Recursive data structures are almost always implemented with...

    psjetha

    • Sep 1st, 2009

    Heap is a dynamic memory of main memory. In main memory there are several type of memory management like fixed, static, dynamic (it is just memory area which can be used by any task or process but it ...

  •  

    What is the difference between NULL and NUL?

    NULL is a macro defined in <stddef.h> for the null pointer. NUL is the name of the first character in the ASCII character set. It corresponds to a zero value. There’s no standard macro NUL in C, but some people like to define it. The digit 0 corresponds to a value of 80, decimal. Don’t confuse the digit 0 with the value of ‘’ (NUL)! NULL can be defined as ((void*)0), NUL as ‘’.  

  •  

    Can math operations be performed on a void pointer?

    No. Pointer addition and subtraction are based on advancing the pointer by a number of elements. By definition, if you have a void pointer, you don’t know what it’s pointing to, so you don’t know the size of what it’s pointing to. If you want pointer arithmetic to work on raw addresses, use character pointers.  

    Ted

    • Sep 28th, 2011

    From the above answer don't understand: If you want pointer arithmetic to work on raw addresses, use character pointers. However the void pointer can be incremented(or decremented) and it will increm...

  •  

    How do you print an address?

    The safest way is to use printf() (or fprintf() or sprintf()) with the %P specification. That prints a void pointer (void*). Different compilers might print a pointer with different formats. Your compiler will pick a format that’s right for your environment. If you have some other kind of pointer (not a void*) and you want to be very safe, cast the pointer to a void*: printf( “%Pn”, (void*) buffer...

    paulson paul chambakottukudyil

    • Apr 24th, 2006

    I tried both %p and %Fp. There is no difference, atleast in MS visual studio. Both are printing the same value.

  •  

    Why should I prototype a function?

    A function prototype tells the compiler what kind of arguments a function is looking to receive and what kind of return value a function is going to give back. This approach helps the compiler ensure that calls to a function are made correctly and that no erroneous type conversions are taking place.

    Have_Phun

    • Feb 3rd, 2007

    Int foo(int); // This is func. prototype//Below is func. definitionint foo(int param) { int ret_val; retval=param*100;// return ret_val;}A prototype enables the compiler to know the existence of a certain function somewhere in the program.Whereas the function definition tells it's logic.

  •  

    Is using exit() the same as using return?

    No. The exit() function is used to exit your program and return control to the operating system. The return statement is used to return from a function and return control to the calling function. If you issue a return from the main() function, you are essentially returning control to the calling function, which is the operating system. In this case, the return statement and exit() function are similar....

    R.S.Jayasatahyanarayanan

    • Dec 27th, 2006

    no both r not same because exit()->this function work is to end the  program completelyreturn()->This fucntion return the values where it will be call

  •  

    What is storage class and what are storage variable ?

    A storage class is an attribute that changes the behavior of a variable. It controls the lifetime, scope and linkage.There are five types of storage classes 1)auto   2)static   3)extern  4)register   5)typedef

  •  

    Differentiate between a linker and linkage? 

    A linker converts an object code into an executable code by linking together the necessary build in functions. The form and place of declaration where the variable is declared in a program determine the linkage of variable.

Showing Questions 521 - 540 of 758 Questions
First | Prev | Next | Last Page
Sort by: 
 | 
Jump to Page: