<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-901731529797120613</id><updated>2012-02-16T09:40:45.281-08:00</updated><title type='text'>All about programming</title><subtitle type='html'>The one pit stop for all interview givers/takers, Engineering grads, Fresh grads, and all who would like to learn and update themselves with C/C++ programming.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://gucatheprogrammer.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/901731529797120613/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://gucatheprogrammer.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>C.A.Gundapi</name><uri>http://www.blogger.com/profile/08048446140232199246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_ITAszZFPWS0/R8PwyMuPerI/AAAAAAAAAA0/55Zg_WoNFHA/S220/IMG_9173.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-901731529797120613.post-4879265095763949513</id><published>2011-06-10T10:17:00.000-07:00</published><updated>2011-06-10T10:18:44.464-07:00</updated><title type='text'>FAQ  Interview</title><content type='html'>&lt;span style="font-size:100%;"&gt;simple programs to ask&lt;br /&gt;================&lt;br /&gt;#STRCAT&lt;br /&gt;#STRCPY&lt;br /&gt;#SWAP&lt;br /&gt;#SUM of Digits&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Macros&lt;br /&gt;======&lt;br /&gt;#No of Seconds in a year&lt;br /&gt;#Server IP address&lt;br /&gt;#MIN/MAX of two&lt;br /&gt;#Allocation and deallocation of mem&lt;br /&gt;#FOREVER loop&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Declarations&lt;br /&gt;=========&lt;br /&gt;Pointer to int&lt;br /&gt;Array of pointers&lt;br /&gt;Pointer to an array&lt;br /&gt;Struct and Union&lt;br /&gt;Function Pointers&lt;br /&gt;&lt;br /&gt;BitWise Operators&lt;br /&gt;=============&lt;br /&gt;how bitwise operators are used in error status flags. ( check declaring bits for particular err, setting more than one error, reading what error occured, clearing the error)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Misc Quetions&lt;br /&gt;==========&lt;br /&gt;#Static, Extern  vars and functions scopes&lt;br /&gt;#const&lt;br /&gt;#How do u copy two structs&lt;br /&gt;#Linked lists&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;===================================================================================================&lt;br /&gt;If he answers 3 out 5 for above questions(except link list) then ask below to judge the depth&lt;br /&gt;&lt;br /&gt;#Program to eliminate the duplicate elements in array. (Chk array init syntax, loops, function fomal args)&lt;br /&gt;#Program to reverse the array without using the temp storage array&lt;br /&gt;#Sort array using bubble sort and search using binary.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#Fibonacci Or factorial using recursion. ( Good if he explains the stack flow b/w normal function and recursion)&lt;br /&gt;===================================================================================================&lt;br /&gt;&lt;br /&gt;If he answers 1 of above good to go deeper&lt;br /&gt;&lt;br /&gt;#List list - Create, add the end, add at the begining, delete, sort&lt;br /&gt;&lt;br /&gt;=================================================================================================&lt;br /&gt;&lt;br /&gt;if he is 5+ then ask classical typical interview question like&lt;br /&gt;&lt;br /&gt;Dictionary creation - Chk the approach, Data structure building, tree formation, binary search on trees. ( This is good enough to discuss for 2 hrs)&lt;br /&gt;&lt;br /&gt;=================================================================================================&lt;br /&gt;&lt;br /&gt;C++ Questions&lt;br /&gt;&lt;br /&gt;# what is constructor and destructor - usage , declaration&lt;br /&gt;&lt;br /&gt;# Can we overload cons and desc - why do we do so ?&lt;br /&gt;&lt;br /&gt;# What are virtual function - usage ?&lt;br /&gt;&lt;br /&gt;# Is it possible to ve virtual cons/dest - If no why ?&lt;br /&gt;&lt;br /&gt;#scope - public, private and protected.&lt;br /&gt;&lt;br /&gt;# Friend function and usage ..&lt;br /&gt;&lt;br /&gt;# Different types of inheritance. &lt;br /&gt;&lt;br /&gt;# Define a class and member functions to add and ask add to overload for any data type . (Chk class , object, functions, logic)&lt;br /&gt;&lt;br /&gt;#what r pure virtual class .. - usage.&lt;br /&gt;&lt;br /&gt;==============================================================================================&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Operating system&lt;br /&gt;&lt;br /&gt;# Memory Laypout of a program&lt;br /&gt;&lt;br /&gt;# Job of OS. - how in between&lt;br /&gt;&lt;br /&gt;# Difference b/w process and thread.&lt;br /&gt;&lt;br /&gt;# IPC ( pipe, msg queques, shared memory, sockets )&lt;br /&gt;&lt;br /&gt;# Socket programming : client side calls and server side calls ( Y for the difference)&lt;br /&gt;&lt;br /&gt;# Virtual Memory concepts&lt;br /&gt;&lt;br /&gt;=============================================================================================&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Network questions&lt;br /&gt;&lt;br /&gt;# TCP/IP 3 way hand shake&lt;br /&gt;#  MAC / IP address conversion&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/901731529797120613-4879265095763949513?l=gucatheprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gucatheprogrammer.blogspot.com/feeds/4879265095763949513/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=901731529797120613&amp;postID=4879265095763949513' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/901731529797120613/posts/default/4879265095763949513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/901731529797120613/posts/default/4879265095763949513'/><link rel='alternate' type='text/html' href='http://gucatheprogrammer.blogspot.com/2011/06/faq-interview.html' title='FAQ  Interview'/><author><name>C.A.Gundapi</name><uri>http://www.blogger.com/profile/08048446140232199246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_ITAszZFPWS0/R8PwyMuPerI/AAAAAAAAAA0/55Zg_WoNFHA/S220/IMG_9173.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-901731529797120613.post-116839334573222991</id><published>2009-11-04T01:01:00.000-08:00</published><updated>2009-11-04T01:04:38.753-08:00</updated><title type='text'>Check whether given number is Fibonacci OR not</title><content type='html'>Algo : A given number is said to be fibonacci, if  5*N*N -4 or 5*N*N +4 is a square&lt;br /&gt;&lt;br /&gt;#include &lt;stdio.h&gt;&lt;br /&gt;int isSquare(int num);&lt;br /&gt;main()&lt;br /&gt;{&lt;br /&gt;   int num, temp;&lt;br /&gt;   printf("Enter the number\n");&lt;br /&gt;   scanf("%d", &amp;amp;num);&lt;br /&gt;&lt;br /&gt;   temp = 5 *(num * num) - 4;&lt;br /&gt;&lt;br /&gt;   if(isSquare(temp) || isSquare(temp+8)){&lt;br /&gt;       printf("It is finonacci number\n");&lt;br /&gt;   }else {&lt;br /&gt;       printf("It is NOT finonacci number\n");&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;int isSquare(int num)&lt;br /&gt;{&lt;br /&gt;   int i=1;&lt;br /&gt;   while(num&gt;0)&lt;br /&gt;   {&lt;br /&gt;   num = num - i;&lt;br /&gt;   i = i+2;&lt;br /&gt;   }&lt;br /&gt;   if(num==0)&lt;br /&gt;       return 1;&lt;br /&gt;   else&lt;br /&gt;       return 0;&lt;br /&gt;}&lt;/stdio.h&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/901731529797120613-116839334573222991?l=gucatheprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gucatheprogrammer.blogspot.com/feeds/116839334573222991/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=901731529797120613&amp;postID=116839334573222991' title='39 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/901731529797120613/posts/default/116839334573222991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/901731529797120613/posts/default/116839334573222991'/><link rel='alternate' type='text/html' href='http://gucatheprogrammer.blogspot.com/2009/11/check-whether-given-number-is-fibonacci.html' title='Check whether given number is Fibonacci OR not'/><author><name>C.A.Gundapi</name><uri>http://www.blogger.com/profile/08048446140232199246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_ITAszZFPWS0/R8PwyMuPerI/AAAAAAAAAA0/55Zg_WoNFHA/S220/IMG_9173.JPG'/></author><thr:total>39</thr:total></entry><entry><id>tag:blogger.com,1999:blog-901731529797120613.post-2347917672731920444</id><published>2009-11-02T20:58:00.000-08:00</published><updated>2009-11-02T21:01:43.214-08:00</updated><title type='text'>Fibonacci Numbers</title><content type='html'>C program to generate Fibonacci numbers till the user entered value.&lt;br /&gt;&lt;br /&gt;#include &lt;stdio.h&gt;&lt;br /&gt;main()&lt;br /&gt;{&lt;br /&gt;   int num;&lt;br /&gt;   int *a, i;;&lt;br /&gt;   printf("Enter the number\n");&lt;br /&gt;   scanf("%d", &amp;amp;num);&lt;br /&gt;&lt;br /&gt;   a = (int *)malloc(sizeof(int)*num);&lt;br /&gt;&lt;br /&gt;   a[0] = 0;&lt;br /&gt;   a[1] = 1;&lt;br /&gt;   printf("FIBONACCI Numbers are\n");&lt;br /&gt;   printf("%d\n%d\n", a[0],a[1]);&lt;br /&gt;&lt;br /&gt;   for(i = 2; i&lt;num;&gt;&lt;br /&gt;   {&lt;br /&gt;       a[i] = a[i-1] + a[i-2];&lt;br /&gt;       printf("%d\n", a[i]);&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/num;&gt;&lt;/stdio.h&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/901731529797120613-2347917672731920444?l=gucatheprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gucatheprogrammer.blogspot.com/feeds/2347917672731920444/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=901731529797120613&amp;postID=2347917672731920444' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/901731529797120613/posts/default/2347917672731920444'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/901731529797120613/posts/default/2347917672731920444'/><link rel='alternate' type='text/html' href='http://gucatheprogrammer.blogspot.com/2009/11/fibonacci-numbers.html' title='Fibonacci Numbers'/><author><name>C.A.Gundapi</name><uri>http://www.blogger.com/profile/08048446140232199246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_ITAszZFPWS0/R8PwyMuPerI/AAAAAAAAAA0/55Zg_WoNFHA/S220/IMG_9173.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-901731529797120613.post-4203472762006725345</id><published>2008-05-06T05:10:00.000-07:00</published><updated>2008-05-06T05:11:30.549-07:00</updated><title type='text'>Basic C programming answers</title><content type='html'>1)Program to find number of 1s and zeros in given integer.&lt;br /&gt;Find the answer here http://gucatheprogrammer.blogspot.com/2007/10/simple-yet-useful-c-programs.html&lt;br /&gt;&lt;br /&gt;2)Write a C program to check whether machine is Big endian OR little endian&lt;br /&gt;#include &lt;stdio.h&gt;&lt;br /&gt;&lt;br /&gt;int main()&lt;br /&gt;{&lt;br /&gt;   unsigned int n = 1;&lt;br /&gt;   char *p;&lt;br /&gt;&lt;br /&gt;   p = (char*)&amp;n;&lt;br /&gt;   if (*p == 1)&lt;br /&gt;       printf("Little Endian\n");&lt;br /&gt;   else if (*(p + sizeof(int) - 1) == 1)&lt;br /&gt;       printf("Big Endian\n");&lt;br /&gt;   else&lt;br /&gt;       printf("What the crap?\n");&lt;br /&gt;&lt;br /&gt;   return 0;&lt;br /&gt;}&lt;br /&gt;3)C program to Convert decimal to binary&lt;br /&gt;Find the answer here http://gucatheprogrammer.blogspot.com/2007/10/simple-yet-useful-c-programs.html&lt;br /&gt;&lt;br /&gt;4)C program to do STRCPY without using strcpy&lt;br /&gt;I will write just the function :&lt;br /&gt;char * mystrcpy(char * dest,const char *src)&lt;br /&gt;{&lt;br /&gt;   char *temp = dest;&lt;br /&gt;   while ((*dest++ = *src++) != '\0')&lt;br /&gt;     return temp;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;5)C program to STRCAT without using strcat&lt;br /&gt;char * mystrcat(char * dest, const char * src)&lt;br /&gt;{&lt;br /&gt;   char *temp = dest;&lt;br /&gt;   while (*dest)&lt;br /&gt;       dest++;&lt;br /&gt;   while ((*dest++ = *src++) != '\0') ;&lt;br /&gt;   return temp;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;6)Write a C macro which returns number of seconds in year&lt;br /&gt;This is too general. This is just to check guy knows about the MACRO and its syntax.&lt;br /&gt;#define NUMER_OF_SECONDS_YEAR (365*24*60*60)&lt;br /&gt;&lt;br /&gt;7)C program to find sum of digits of any given integer number .&lt;br /&gt;#include&lt;stdio.h&gt;&lt;br /&gt;int add_digits(int a);&lt;br /&gt;main()&lt;br /&gt;{&lt;br /&gt;   int a ;&lt;br /&gt;   printf("Enter the number\n");&lt;br /&gt;   scanf("%d", &amp;amp;a);&lt;br /&gt;   printf("Sum of digits = %d\n", add_digits(a));&lt;br /&gt;}&lt;br /&gt;int add_digits(int num)&lt;br /&gt;{&lt;br /&gt;   int sum = 0;&lt;br /&gt;   while(num)&lt;br /&gt;   {&lt;br /&gt;       sum += num%10;&lt;br /&gt;       num /=10;&lt;br /&gt;   }&lt;br /&gt;   return sum;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;8)C program to fine leap year or not&lt;br /&gt;This is just to check how quick he can write ..&lt;br /&gt;Better would be macro or function.&lt;br /&gt;#include &lt;stdio.h&gt;&lt;br /&gt;main()&lt;br /&gt;{&lt;br /&gt;   int year;&lt;br /&gt;   printf("Enter the year\n");&lt;br /&gt;   scanf("%d", &amp;amp;year);&lt;br /&gt;   if(year % 4 == 0){&lt;br /&gt;       printf("Given year is leap\n");&lt;br /&gt;   } else {&lt;br /&gt;       printf("Given year is NOT leap\n");&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;9)C program to swap two variables (using pointers), without using temp variable.&lt;br /&gt;#include &lt;stdio.h&gt;&lt;br /&gt;void swap(int *p1, int *p2);&lt;br /&gt;main()&lt;br /&gt;{&lt;br /&gt;   int a, b;&lt;br /&gt;   printf("Enter the values for a and b\n");&lt;br /&gt;   scanf("%d%d",&amp;amp;a,&amp;amp;b);&lt;br /&gt;   swap(&amp;amp;a, &amp;amp;b);&lt;br /&gt;&lt;br /&gt;   printf("a = %d\n and b = %d\n", a, b);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void swap(int *p1, int *p2)&lt;br /&gt;{&lt;br /&gt;   *p1 = *p1 + *p2;&lt;br /&gt;   *p2 = *p1 - *p2;&lt;br /&gt;   *p1 = *p1 - *p2;&lt;br /&gt;   return;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;10)C program to find sum of given Array.&lt;br /&gt;#include &lt;stdio.h&gt;&lt;br /&gt;int arr_sum(int *a, int size);&lt;br /&gt;main()&lt;br /&gt;{&lt;br /&gt;   int a[10] = {1,2,3,4,5,6,7,8,9,10};&lt;br /&gt;   int sum = arr_sum(a,10);&lt;br /&gt;   printf("SUM = %d\n", sum);&lt;br /&gt;}&lt;br /&gt;int arr_sum(int *a, int size)&lt;br /&gt;{&lt;br /&gt;   int sum = 0, i;&lt;br /&gt;   for(i =0; i&lt;size; sum="" write="" macro="" to="" return="" minimum="" of="" two="" numbers="" include=""&gt;&lt;stdio.h&gt;&lt;br /&gt;#define MIN(a,b) ((a&gt;b)?b:a)&lt;br /&gt;main()&lt;br /&gt;{&lt;br /&gt;   int a=100, b=20;&lt;br /&gt;   printf("MIN = %d\n", MIN(a,b));&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;The below ones are left as exercise to students :) .. Actually I got bored to write :)&lt;br /&gt;12)C program to find largest of three numbers&lt;br /&gt;13)C program to store data for 10 student info&lt;br /&gt;14)Write all infinite loops u can think off&lt;br /&gt;&lt;/stdio.h&gt;&lt;/size;&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/901731529797120613-4203472762006725345?l=gucatheprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gucatheprogrammer.blogspot.com/feeds/4203472762006725345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=901731529797120613&amp;postID=4203472762006725345' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/901731529797120613/posts/default/4203472762006725345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/901731529797120613/posts/default/4203472762006725345'/><link rel='alternate' type='text/html' href='http://gucatheprogrammer.blogspot.com/2008/05/basic-c-programming-answers.html' title='Basic C programming answers'/><author><name>C.A.Gundapi</name><uri>http://www.blogger.com/profile/08048446140232199246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_ITAszZFPWS0/R8PwyMuPerI/AAAAAAAAAA0/55Zg_WoNFHA/S220/IMG_9173.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-901731529797120613.post-2747556720426738333</id><published>2008-03-23T22:28:00.000-07:00</published><updated>2008-03-23T22:33:26.861-07:00</updated><title type='text'>Campus to Corporate- 3</title><content type='html'>Since many of freshers fail to answer simple HR question, I though of making a single page for most frequently asked questions and their answers. I have couple of the links, which I found to be useful. Spend some time in browsing some good stuff :) .. Just kidding :) ..&lt;br /&gt;&lt;br /&gt;Please have a look at the following links&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;http://hitechskill.com/HR-Interview-Questions/display.jsp?type=HR&amp;amp;page=1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The below one is not that good.... But worth visiting once&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;http://www.yuvajobs.com/hr-questions.asp&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I will come up with my answers and update this page asap. Keep visiting this page.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/901731529797120613-2747556720426738333?l=gucatheprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gucatheprogrammer.blogspot.com/feeds/2747556720426738333/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=901731529797120613&amp;postID=2747556720426738333' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/901731529797120613/posts/default/2747556720426738333'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/901731529797120613/posts/default/2747556720426738333'/><link rel='alternate' type='text/html' href='http://gucatheprogrammer.blogspot.com/2008/03/campus-to-corporate-3.html' title='Campus to Corporate- 3'/><author><name>C.A.Gundapi</name><uri>http://www.blogger.com/profile/08048446140232199246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_ITAszZFPWS0/R8PwyMuPerI/AAAAAAAAAA0/55Zg_WoNFHA/S220/IMG_9173.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-901731529797120613.post-4747236316827152476</id><published>2008-03-04T00:41:00.000-08:00</published><updated>2008-03-04T00:43:44.162-08:00</updated><title type='text'>Campus to Corporate Gateway-2</title><content type='html'>&lt;span style="font-weight: bold; font-style: italic; color: rgb(255, 0, 0);font-family:georgia;" &gt;OPERATING SYSTEM BASICS&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic; color: rgb(255, 0, 0);font-family:georgia;" &gt;---------------------------------------&lt;/span&gt;&lt;br /&gt;1)Explain the basic architecture of OS(Kernal, shell, user apps etc)&lt;br /&gt;2)The same above question can be asked to trace the OS flow for simple commands like "ls -l"&lt;br /&gt;3)What is process?&lt;br /&gt;4)What is thread ?&lt;br /&gt;5)what are the differences b/w process and thread?&lt;br /&gt;6)What are the different states of process?&lt;br /&gt;7)Explain the basics of scheduling? May be by taking simple round robin algorithm&lt;br /&gt;8)What are interrupts?&lt;br /&gt;9)what are different types of IPC mechanism available in the OS?&lt;br /&gt;10)Difference between mutex and semaphore?&lt;br /&gt;11)What is deadlock and how do we can avoid it?&lt;br /&gt;12)Small shell script writting..&lt;br /&gt;13)What is real time operating system?&lt;br /&gt;14)What is the OS you have used for academic projects and why only that?&lt;br /&gt;15)what is the difference between virtual memory and physical memory ??&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/901731529797120613-4747236316827152476?l=gucatheprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gucatheprogrammer.blogspot.com/feeds/4747236316827152476/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=901731529797120613&amp;postID=4747236316827152476' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/901731529797120613/posts/default/4747236316827152476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/901731529797120613/posts/default/4747236316827152476'/><link rel='alternate' type='text/html' href='http://gucatheprogrammer.blogspot.com/2008/03/campus-to-corporate-2.html' title='Campus to Corporate Gateway-2'/><author><name>C.A.Gundapi</name><uri>http://www.blogger.com/profile/08048446140232199246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_ITAszZFPWS0/R8PwyMuPerI/AAAAAAAAAA0/55Zg_WoNFHA/S220/IMG_9173.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-901731529797120613.post-4908034428697557606</id><published>2008-02-26T04:45:00.000-08:00</published><updated>2008-02-26T20:30:51.763-08:00</updated><title type='text'>Campus to Corporate Gateway</title><content type='html'>&lt;span style="font-family:georgia;"&gt;This is my effort to consolidate FAQ for the freshers. The most common things on which freshers can be tested is through logical analysis. In spite the candidate clears the test, he has to face the technical interview. In most of the technical interviews freshers will be judged on the basis of the basics he knows.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;To test the basics interviewer can choose any of the following.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0); font-style: italic;font-family:georgia;" &gt;C concepts and programming&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0); font-style: italic;font-family:georgia;" &gt;Operating System Basics&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0); font-style: italic;font-family:georgia;" &gt;C++ programming&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0); font-style: italic;font-family:georgia;" &gt;Computer Networks&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0); font-style: italic;font-family:georgia;" &gt;Microprocessors or Micro controllers.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;Even though candidate is always given to the choice to choose his favorite subject, it is not only the criteria to select the candidate, Meaning even though candidate is good at his favorite subject interviewer always makes sure what he knows apart from that and exactly that's where other subject peek in.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;I have tried my best to list down most probable questions in each area. If you them useful give a comment else update the missing info through comments :) &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 0); font-style: italic;font-family:georgia;" &gt;Let us see Fresh C :)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 0); font-style: italic;font-family:georgia;" &gt;------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;1)Program to find number of 1s and zeros in given integer.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;2)Write a C program to check whether machine is Big endian OR little endian&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;3)C program to Convert decimal to binary&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;4)C program to do STRCPY without using strcpy&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;5)C program to STRCAT without using strcat&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;6)Write a C macro which returns number of seconds in year&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;7)C program to find sum of digits of any given integer number .&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;8)C program to fine leap year or not &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;9)C program to swap two variables (using pointers), without using temp variable.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;10)C program to find sum of given Array.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;11)Write Macro to return minimum of two numbers&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;12)C program to find largest of three numbers&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;13)C program to store data for 10 student info&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;14)Write all infinite loops u can think off&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;Here is the most critical part, most of the freshers fail to undersatnd or answer this. If they answer, assume that he is good in C and try to interview him on some other basics.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;15)a) An integer -&gt;int a;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;b) A pointer to an integer -&gt; int *a;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;c) A pointer to a pointer to an integer -&gt; int **a;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;d) An array of 10 integers -&gt; int a[10];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;e) An array of 10 pointers to integers -&gt; int *a[10];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;f) A pointer to an array of 10 integers-&gt; int (*a)[10];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;g) A pointer to a function that takes an integer as an argument and returns an integer -&gt; int (*fun)(int)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;h) An array of ten pointers to functions that take an integer argument and return an integer int (*fun[10])(int)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;16)Difference between struct n union&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;17)What are uses of keyword "static" ?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;18)Test knowledge on const &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;const int a;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;int const a;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;const int *a;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;int * const a;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;int const * a const;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;19)C Program to set/clear 3rd bit in given int&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;20) What is self referntail structure&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;21)List down all file operation calls u ve used so far.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;22) Give them small programs n ask the output&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;   1) Check if catches seg faults&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;   2)Relations operators (Especially logical operators)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;   3)const value increament/decrement rules.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;   4)extern initialzation&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;   5)recursive functions&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;   6)pointer operations&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;23) Ask him to explain basic data types and derived data types.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;24)C program to remove the duplicate elements of the array.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;25)C program to find the simple interst.(Or any formula)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 0); font-style: italic;font-family:georgia;" &gt;Networking Basics&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 0); font-style: italic;font-family:georgia;" &gt;-----------------------&lt;/span&gt;&lt;br /&gt;These questions will be asked to check the potential of the candidate, if he chooses his favorite subject as computer networks OR if the company is core networking company.&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;1)Different types of ethernet and their speed.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;2)IP addres basics (classes etc)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;3)Wireless and wired connections&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;4)Difference between router/bridge/switch&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;6)TCP/IP model explaination&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;7) OSI model (layers explaination)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;8)CSMA/CD algorithm&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;9)TCP/UDP difference or try to get from him what are all he/she knows about it.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;10)What is DHCP/DNS?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;11)Ethernet header. (If he can explain MAC address alone,that is sufficient)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;12) Tunneling theory.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;13)Routing table - discovery (Any of the congestion algorithm)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;14)Favourite layer and its operation&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;15)server/client model&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;16)Network topolopy and their selection&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;17)How do u choose the port number for any of the protocol&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;18)Any of the application layer protocol&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;19)Basics about the LAN&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;20)Some random problem about the network and try to see how he approaches towards it.&lt;br /&gt;&lt;br /&gt;This will be updated on different subjects, when I find the time :)&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/901731529797120613-4908034428697557606?l=gucatheprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gucatheprogrammer.blogspot.com/feeds/4908034428697557606/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=901731529797120613&amp;postID=4908034428697557606' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/901731529797120613/posts/default/4908034428697557606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/901731529797120613/posts/default/4908034428697557606'/><link rel='alternate' type='text/html' href='http://gucatheprogrammer.blogspot.com/2008/02/campus-to-corporate-gateway.html' title='Campus to Corporate Gateway'/><author><name>C.A.Gundapi</name><uri>http://www.blogger.com/profile/08048446140232199246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_ITAszZFPWS0/R8PwyMuPerI/AAAAAAAAAA0/55Zg_WoNFHA/S220/IMG_9173.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-901731529797120613.post-7746553469423204734</id><published>2007-11-18T00:17:00.000-08:00</published><updated>2007-11-18T00:25:36.650-08:00</updated><title type='text'>SCJP FAQ</title><content type='html'>&lt;span style="color:#660000;"&gt;&lt;span style="font-family:georgia;"&gt;&lt;em&gt;This is my attempt to gather all the links required for SCJP. Even though it's not the area where I am very strong ... I tried collecting the links from my roomie, who tried hard to attend n clear the exam.. Upon his input these links helps novice to prepare, to take mock tests before attending the real exam .. &lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;&lt;em&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;&lt;em&gt;Let me elucidate again .. It's not the area I am pretty good at :( ... But I trust my roomie . So posted the links ..&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;&lt;em&gt;All the best... Enjoy JAVA &lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;&lt;em&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;&lt;em&gt;Here we go .. &lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:georgia;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.akgupta.com/Java/mock_exam.htm"&gt;&lt;span style="font-family:georgia;"&gt;http://www.akgupta.com/Java/mock_exam.htm&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.geocities.com/wahjava/dctester.html"&gt;&lt;span style="font-family:georgia;"&gt;http://www.geocities.com/wahjava/dctester.html&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mihaiu.name/"&gt;&lt;span style="font-family:georgia;"&gt;http://www.mihaiu.name/&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.wbrogden.com/java/javacert/TestApplet6.htm"&gt;&lt;span style="font-family:georgia;"&gt;http://www.wbrogden.com/java/javacert/TestApplet6.htm&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.wbrogden.com/exams/myexam"&gt;&lt;span style="font-family:georgia;"&gt;http://www.wbrogden.com/exams/myexam&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.wbrogden.com/tests/index.html"&gt;&lt;span style="font-family:georgia;"&gt;http://www.wbrogden.com/tests/index.html&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.google.com/Top/Computers/Programming/Languages/Java/Resources/Certification/"&gt;&lt;span style="font-family:georgia;"&gt;http://www.google.com/Top/Computers/Programming/Languages/Java/Resources/Certification/&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.jiris.com/online/userpwd2.do"&gt;&lt;span style="font-family:georgia;"&gt;http://www.jiris.com/online/userpwd2.do&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.aniyog.com/java/certification.htm"&gt;&lt;span style="font-family:georgia;"&gt;http://www.aniyog.com/java/certification.htm&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.geocities.com/sunjava4u/moc_ex.html"&gt;&lt;span style="font-family:georgia;"&gt;http://www.geocities.com/sunjava4u/moc_ex.html&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.javacamp.org/testengine/comprehensive.html"&gt;&lt;span style="font-family:georgia;"&gt;http://www.javacamp.org/testengine/comprehensive.html&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.certgear.com/products/info/scjp.htm"&gt;&lt;span style="font-family:georgia;"&gt;http://www.certgear.com/products/info/scjp.htm&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.geocities.com/sunjava4u/moc_ex.html"&gt;&lt;span style="font-family:georgia;"&gt;http://www.geocities.com/sunjava4u/moc_ex.html&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://valiveru.tripod.com/java/index.html/#certlinks"&gt;&lt;span style="font-family:georgia;"&gt;http://valiveru.tripod.com/java/index.html/#certlinks&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.go4java.20m.com/mock2.htm"&gt;&lt;span style="font-family:georgia;"&gt;http://www.go4java.20m.com/mock2.htm&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.valoxo.ch/jr/mocks/mock01a.html"&gt;&lt;span style="font-family:georgia;"&gt;http://www.valoxo.ch/jr/mocks/mock01a.html&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.geocities.com/SiliconValley/Screen/5046/index.html"&gt;&lt;span style="font-family:georgia;"&gt;http://www.geocities.com/SiliconValley/Screen/5046/index.html&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bmil.freeservers.com/tester/test.html"&gt;&lt;span style="font-family:georgia;"&gt;http://bmil.freeservers.com/tester/test.html&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www21.brinkster.com/infoway02/SCJP2.asp"&gt;&lt;span style="font-family:georgia;"&gt;http://www21.brinkster.com/infoway02/SCJP2.asp&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www21.brinkster.com/infoway02/html/SCJP_20.html"&gt;&lt;span style="font-family:georgia;"&gt;http://www21.brinkster.com/infoway02/html/SCJP_20.html&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jdiscuss.com/Enthuse/jsp/ShowAvailableTests.jsp"&gt;&lt;span style="font-family:georgia;"&gt;http://jdiscuss.com/Enthuse/jsp/ShowAvailableTests.jsp&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.geocities.com/sunjava4u/mock1.html"&gt;&lt;span style="font-family:georgia;"&gt;http://www.geocities.com/sunjava4u/mock1.html&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:georgia;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/901731529797120613-7746553469423204734?l=gucatheprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gucatheprogrammer.blogspot.com/feeds/7746553469423204734/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=901731529797120613&amp;postID=7746553469423204734' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/901731529797120613/posts/default/7746553469423204734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/901731529797120613/posts/default/7746553469423204734'/><link rel='alternate' type='text/html' href='http://gucatheprogrammer.blogspot.com/2007/11/sjcp-faq.html' title='SCJP FAQ'/><author><name>C.A.Gundapi</name><uri>http://www.blogger.com/profile/08048446140232199246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_ITAszZFPWS0/R8PwyMuPerI/AAAAAAAAAA0/55Zg_WoNFHA/S220/IMG_9173.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-901731529797120613.post-2028636715718127191</id><published>2007-11-16T23:36:00.000-08:00</published><updated>2007-11-16T23:41:25.149-08:00</updated><title type='text'>Linux Concluded</title><content type='html'>&lt;span style="font-family:georgia;"&gt;&lt;em&gt;1)Very much basics of Operating system. I feel its best to glance these once, to refresh the learning done.&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.techinterviews.com/?p=170"&gt;&lt;span style="font-family:georgia;"&gt;http://www.techinterviews.com/?p=170&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;&lt;em&gt;2) Threads demystified &lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;&lt;em&gt;Linux threads FAQ&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://pauillac.inria.fr/~xleroy/linuxthreads/faq.html"&gt;&lt;span style="font-family:georgia;"&gt;http://pauillac.inria.fr/~xleroy/linuxthreads/faq.html&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;&lt;em&gt;Posix threads tutorial with example&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.yolinux.com/TUTORIALS/LinuxTutorialPosixThreads.html"&gt;&lt;span style="font-family:georgia;"&gt;http://www.yolinux.com/TUTORIALS/LinuxTutorialPosixThreads.html&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;&lt;em&gt;Thread with java .. Find FAQ here&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.jguru.com/faq/Linux"&gt;&lt;span style="font-family:georgia;"&gt;http://www.jguru.com/faq/Linux&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;&lt;em&gt;Programming with POSIX threads&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.llnl.gov/computing/tutorials/pthreads/"&gt;&lt;span style="font-family:georgia;"&gt;http://www.llnl.gov/computing/tutorials/pthreads/&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;&lt;em&gt;Debugging posix threads, use simple two files debug.c and debug.h listed here&lt;/em&gt; &lt;/span&gt;&lt;a href="http://www.humanfactor.com/pthreads/debugging.html"&gt;&lt;span style="font-family:georgia;"&gt;http://www.humanfactor.com/pthreads/debugging.html&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;&lt;em&gt;3)Find the linux documentation at&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.linux.org/docs/"&gt;&lt;span style="font-family:georgia;"&gt;http://www.linux.org/docs/&lt;/span&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/901731529797120613-2028636715718127191?l=gucatheprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gucatheprogrammer.blogspot.com/feeds/2028636715718127191/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=901731529797120613&amp;postID=2028636715718127191' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/901731529797120613/posts/default/2028636715718127191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/901731529797120613/posts/default/2028636715718127191'/><link rel='alternate' type='text/html' href='http://gucatheprogrammer.blogspot.com/2007/11/linux-concluded.html' title='Linux Concluded'/><author><name>C.A.Gundapi</name><uri>http://www.blogger.com/profile/08048446140232199246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_ITAszZFPWS0/R8PwyMuPerI/AAAAAAAAAA0/55Zg_WoNFHA/S220/IMG_9173.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-901731529797120613.post-8275920094571845885</id><published>2007-10-27T02:28:00.000-07:00</published><updated>2007-11-16T23:00:17.362-08:00</updated><title type='text'>Simple yet useful C programs</title><content type='html'>&lt;span style="COLOR: rgb(204,0,0)"&gt;All functions written below are compiled on gcc.&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(204,0,0)"&gt;1) Function to count number of ones and zeros in a given integer&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(0,0,153)"&gt;Input Params : &lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(0,0,153)"&gt;a)num: The integer for which count needs to be dome&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(0,0,153)"&gt;b)one_count : pass the address of variable in which 1's count is expected&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(0,0,153)"&gt;c)one_count : pass the address of variable in which 0's count is expected&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;void count_OneAndZero(int num, int *one_count, int *zero_count)&lt;br /&gt;{&lt;br /&gt;while(num != 0){&lt;br /&gt;if(num&amp;amp;1)&lt;br /&gt;*one_count +=1;&lt;br /&gt;num &gt;&gt;=1;&lt;br /&gt;}&lt;br /&gt;*zero_count = sizeof(int)*8 - *one_count;&lt;br /&gt;return;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(204,0,0)"&gt;2) Function to convert decimal to binary&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(0,0,153)"&gt;Input Params : &lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(0,0,153)"&gt;a)decimal: The integer to be converted into binary&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(0,0,153)"&gt;b)binary : The fixed size array in which binary string is expected.&lt;/span&gt;&lt;br /&gt;void dec2bin(long decimal, char *binary)&lt;br /&gt;{&lt;br /&gt;int i = 0, j = 0;&lt;br /&gt;int neg_flag = 0;&lt;br /&gt;int remain;&lt;br /&gt;char temp[80];&lt;br /&gt;&lt;br /&gt;/* what if i/p is -ve */&lt;br /&gt;if (decimal &lt; 0)&lt;br /&gt;{&lt;br /&gt;   decimal = -decimal;&lt;br /&gt;   neg_flag = 1;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;if (neg_flag)&lt;br /&gt;temp[i++] = '-'; // add - sign&lt;br /&gt;else&lt;br /&gt;temp[i++] = ' '; // space&lt;br /&gt;while (i &gt;= 0)&lt;br /&gt;binary[j++] = temp[--i];&lt;br /&gt;binary[j-1] = '\0'; // end with NULL&lt;br /&gt;return;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/901731529797120613-8275920094571845885?l=gucatheprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gucatheprogrammer.blogspot.com/feeds/8275920094571845885/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=901731529797120613&amp;postID=8275920094571845885' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/901731529797120613/posts/default/8275920094571845885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/901731529797120613/posts/default/8275920094571845885'/><link rel='alternate' type='text/html' href='http://gucatheprogrammer.blogspot.com/2007/10/simple-yet-useful-c-programs.html' title='Simple yet useful C programs'/><author><name>C.A.Gundapi</name><uri>http://www.blogger.com/profile/08048446140232199246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_ITAszZFPWS0/R8PwyMuPerI/AAAAAAAAAA0/55Zg_WoNFHA/S220/IMG_9173.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-901731529797120613.post-3459562557958595937</id><published>2007-10-27T00:15:00.000-07:00</published><updated>2007-10-27T00:29:47.944-07:00</updated><title type='text'>See C Links</title><content type='html'>&lt;span style=";font-family:verdana;font-size:100%;"  &gt;This is to make sure we have too many things on net to learn, But scattered here n there. One more attempt to put the things together for reference.&lt;br /&gt;&lt;br /&gt;The site to learn C FAQ by chapter wise&lt;br /&gt;&lt;a href="http://c-faq.com/"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;http://c-faq.com/&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can find the answers to most of the above questions here.&lt;br /&gt;&lt;a href="http://www.faqs.org/faqs/C-faq/faq/"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;http://www.faqs.org/faqs/C-faq/faq/&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A systematic approach to question and answers&lt;br /&gt;&lt;a href="http://faq.cprogramming.com/cgi-bin/smartfaq.cgi"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;http://faq.cprogramming.com/cgi-bin/smartfaq.cgi&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Practical view of looking at C&lt;br /&gt;&lt;a href="http://www.geocities.com/vijoeyz/faq/"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;http://www.geocities.com/vijoeyz/faq/&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Solutions to K&amp;amp;R 2nd edition&lt;br /&gt;&lt;a href="http://users.powernet.co.uk/eton/kandr2/"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;http://users.powernet.co.uk/eton/kandr2/&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Good and simple tutorial on C with graphical illustrations&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;a href="http://www.cs.cf.ac.uk/Dave/C/"&gt;http://www.cs.cf.ac.uk/Dave/C/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:100%;"  &gt;Find good C programming books here&lt;/span&gt;&lt;span style="font-weight: bold;font-family:verdana;font-size:100%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;a href="http://freecomputerbooks.com/"&gt;&lt;span style="color: rgb(0, 0, 153);font-family:georgia;font-size:100%;"  &gt;http://freecomputerbooks.com/&lt;/span&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/901731529797120613-3459562557958595937?l=gucatheprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gucatheprogrammer.blogspot.com/feeds/3459562557958595937/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=901731529797120613&amp;postID=3459562557958595937' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/901731529797120613/posts/default/3459562557958595937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/901731529797120613/posts/default/3459562557958595937'/><link rel='alternate' type='text/html' href='http://gucatheprogrammer.blogspot.com/2007/10/see-c-links.html' title='See C Links'/><author><name>C.A.Gundapi</name><uri>http://www.blogger.com/profile/08048446140232199246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_ITAszZFPWS0/R8PwyMuPerI/AAAAAAAAAA0/55Zg_WoNFHA/S220/IMG_9173.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-901731529797120613.post-1305640094953677660</id><published>2007-10-26T23:43:00.000-07:00</published><updated>2007-10-27T00:31:11.410-07:00</updated><title type='text'>Embedded C  FAQ</title><content type='html'>&lt;span style="color: rgb(0, 0, 102);font-family:georgia;font-size:100%;"  &gt;This is my attempt to to consolidate  all the things available in the net at one spot for my reference as well as for others, if they wish too.. . The below one is from &lt;/span&gt;&lt;span style="color: rgb(0, 0, 102);font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;b&gt;Nigel Jones &lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 102);font-family:georgia;font-size:100%;"  &gt;to identify the candidate's potential in embedded C programming. U can find the same at http://www.embedded.com/2000/0005/0005feat2.htm. Anyway here is the content.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;p style="color: rgb(0, 0, 0);"&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;span style="color: rgb(153, 51, 51);font-family:Verdana,Georgia,Sans-Serif;" &gt;&lt;b&gt;Preprocessor &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;1.  &lt;i&gt;Using the #define statement, how would you declare a manifest constant that returns the number of seconds in a year? Disregard leap years in your answer. &lt;/i&gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="color: rgb(0, 0, 0);"&gt; &lt;/p&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;span style="font-family:Verdana,Georgia,Sans-Serif;"&gt;&lt;b&gt;#define SECONDS_PER_YEAR&lt;br /&gt;(60 * 60 * 24 * 365)UL&lt;br /&gt;&lt;/b&gt;&lt;/span&gt; &lt;/span&gt;&lt;/pre&gt;  &lt;p style="color: rgb(0, 0, 0);"&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;I'm looking for several things here: &lt;/span&gt;&lt;/p&gt; &lt;p style="color: rgb(0, 0, 0);"&gt; &lt;/p&gt;&lt;ul style="color: rgb(0, 0, 0);"&gt;&lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;li&gt;Basic knowledge of the #define syntax (for example, no semi-colon at the end, the need to parenthesize, and so on) &lt;/li&gt; &lt;li&gt;An understanding that the pre-processor will evaluate constant expressions for you. Thus, it is clearer, and penalty-free, to spell out how you are calculating the number of seconds in a year, rather than actually doing the calculation yourself &lt;/li&gt; &lt;li&gt;A realization that the expression will overflow an integer argument on a 16-bit machine-hence the need for the L, telling the compiler to treat the variable as a Long &lt;/li&gt; &lt;li&gt;As a bonus, if you modified the expression with a UL (indicating unsigned long), then you are off to a great start. And remember, first impressions count! &lt;/li&gt; &lt;/span&gt;&lt;/ul&gt;  &lt;p style="color: rgb(0, 0, 0);"&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;2.  &lt;i&gt;Write the "standard" MIN macro-that is, a macro that takes two arguments and returns the smaller of the two arguments. &lt;/i&gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="color: rgb(0, 0, 0);"&gt; &lt;/p&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;span style="font-family:Verdana,Georgia,Sans-Serif;"&gt;&lt;b&gt;#define MIN(A,B)&lt;br /&gt;((A)&lt;br /&gt;&lt; = (B) ? (A) : (B)) &lt;/b&gt;&lt;/span&gt; &lt;/span&gt;&lt;/pre&gt;  &lt;p style="color: rgb(0, 0, 0);"&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;The purpose of this question is to test the following: &lt;/span&gt;&lt;/p&gt; &lt;p style="color: rgb(0, 0, 0);"&gt; &lt;/p&gt;&lt;ul style="color: rgb(0, 0, 0);"&gt;&lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;li&gt;Basic knowledge of the #define directive as used in macros. This is important because until the inline operator becomes part of standard C, macros are the only portable way of generating inline code. Inline code is often necessary in embedded systems in order to achieve the required performance level &lt;/li&gt; &lt;li&gt;Knowledge of the ternary conditional operator. This operator exists in C because it allows the compiler to produce more optimal code than an if-then-else sequence. Given that performance is normally an issue in embedded systems, knowledge and use of this construct is important &lt;/li&gt; &lt;li&gt;Understanding of the need to very carefully parenthesize arguments to macros &lt;/li&gt; &lt;li&gt;I also use this question to start a discussion on the side effects of macros, for example, what happens when you write code such as: &lt;/li&gt; &lt;/span&gt;&lt;/ul&gt;  &lt;p style="color: rgb(0, 0, 0);"&gt; &lt;/p&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;span style="font-family:Verdana,Georgia,Sans-Serif;"&gt;&lt;b&gt;least = MIN(*p++, b);&lt;br /&gt;&lt;/b&gt;&lt;/span&gt; &lt;/span&gt;&lt;/pre&gt;  &lt;p style="color: rgb(0, 0, 0);"&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;3.  &lt;i&gt;What is the purpose of the preprocessor directive #error? &lt;/i&gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="color: rgb(0, 0, 0);"&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;Either you know the answer to this, or you don't. If you don't, see Reference 1. This question is useful for differentiating between normal folks and the nerds. Only the nerds actually read the appendices of C textbooks to find out about such things. Of course, if you aren't looking for a nerd, the candidate better hope she doesn't know the answer. &lt;/span&gt;&lt;/p&gt; &lt;p style="color: rgb(0, 0, 0);"&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;span style="color: rgb(153, 51, 51);font-family:Verdana,Georgia,Sans-Serif;" &gt;&lt;b&gt;Infinite loops &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;4.  &lt;i&gt;Infinite loops often arise in embedded systems. How does you code an infinite loop in C? &lt;/i&gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="color: rgb(0, 0, 0);"&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;There are several solutions to this question. My preferred solution is: &lt;/span&gt;&lt;/p&gt; &lt;p style="color: rgb(0, 0, 0);"&gt; &lt;/p&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;span style="font-family:Verdana,Georgia,Sans-Serif;"&gt;&lt;b&gt;&lt;br /&gt;while(1)&lt;br /&gt;{&lt;br /&gt;ý&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;     &lt;p style="color: rgb(0, 0, 0);"&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;Many programmers seem to prefer:  &lt;/span&gt;&lt;/p&gt;   &lt;p style="color: rgb(0, 0, 0);"&gt;  &lt;/p&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;span style="font-family:Verdana,Georgia,Sans-Serif;"&gt;&lt;b&gt;&lt;br /&gt;for(;;)&lt;br /&gt;{&lt;br /&gt;ý&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;     &lt;p style="color: rgb(0, 0, 0);"&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;This construct puzzles me because the syntax doesn't exactly spell out what's going on. Thus, if a candidate gives this as a solution, I'll use it as an opportunity to explore their rationale for doing so. If their answer is basically, "I was taught to do it this way and I haven't thought about it since," it tells me something (bad) about them. &lt;/span&gt;&lt;/p&gt;   &lt;p style="color: rgb(0, 0, 0);"&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;A third solution is to use a  &lt;b&gt;goto &lt;/b&gt;:  &lt;/span&gt;&lt;/p&gt;   &lt;p style="color: rgb(0, 0, 0);"&gt;  &lt;/p&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;span style="font-family:Verdana,Georgia,Sans-Serif;"&gt;&lt;b&gt;&lt;br /&gt;Loop:&lt;br /&gt;...&lt;br /&gt;goto Loop;&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;     &lt;p style="color: rgb(0, 0, 0);"&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;Candidates who propose this are either assembly language programmers (which is probably good), or else they are  closet BASIC/FORTRAN programmers looking to get into a new field.   &lt;/span&gt;&lt;/p&gt;   &lt;p style="color: rgb(0, 0, 0);"&gt;  &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;span style="color: rgb(153, 51, 51);font-family:Verdana,Georgia,Sans-Serif;" &gt;&lt;b&gt;Data declarations &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;5.  &lt;i&gt;Using the variable a, give definitions for the following:&lt;br /&gt;a) An integer&lt;br /&gt;b) A pointer to an integer&lt;br /&gt;c) A pointer to a pointer to an integer&lt;br /&gt;d) An array of 10 integers&lt;br /&gt;e) An array of 10 pointers to integers&lt;br /&gt;f) A pointer to an array of 10 integers&lt;br /&gt;g) A pointer to a function that takes an integer as an  argument and returns an integer&lt;br /&gt;h) An array of ten pointers to functions that take an integer argument and return an integer &lt;/i&gt;  &lt;/span&gt;&lt;/p&gt;   &lt;p style="color: rgb(0, 0, 0);"&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;The answers are:&lt;br /&gt;a)  &lt;b&gt;int a; &lt;/b&gt; // An integer&lt;br /&gt;b)  &lt;b&gt;int *a; &lt;/b&gt; // A pointer to an integer&lt;br /&gt;c)  &lt;b&gt;int **a; &lt;/b&gt; // A pointer to a pointer to an integer&lt;br /&gt;d)  &lt;b&gt;int a[10]; &lt;/b&gt; // An array of 10 integers&lt;br /&gt;e)  &lt;b&gt;int *a[10]; &lt;/b&gt; // An array of 10 pointers to integers&lt;br /&gt;f)  &lt;b&gt;int (*a)[10]; &lt;/b&gt; // A pointer to an array of 10 integers&lt;br /&gt;g)  &lt;b&gt;int  (*a)(int); &lt;/b&gt;  // A pointer to a function a that takes an integer argument and returns an integer&lt;br /&gt;h)  &lt;b&gt;int (*a[10])(int); &lt;/b&gt; // An array of 10 pointers to functions that take an integer argument and return an integer  &lt;/span&gt;&lt;/p&gt;   &lt;p style="color: rgb(0, 0, 0);"&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;People often claim that a couple of these are the sorts of thing that one looks up in textbooks-and I agree. While writing this article, I consulted textbooks to ensure the syntax was correct. However, I expect to be asked this question (or something close to it) when I'm being interviewed. Consequently, I make sure I know the answers, at least for the few hours of the interview. Candidates who don't know all the answers (or at least most of them) are simply unprepared for the interview. If they can't be prepared for the interview, what will they be prepared for? &lt;/span&gt;&lt;/p&gt;   &lt;p style="color: rgb(0, 0, 0);"&gt;  &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;span style="color: rgb(153, 51, 51);font-family:Verdana,Georgia,Sans-Serif;" &gt;&lt;b&gt;Static &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;6.  &lt;i&gt;What are the uses of the keyword  static? &lt;/i&gt;  &lt;/span&gt;&lt;/p&gt;   &lt;p style="color: rgb(0, 0, 0);"&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;This simple question is rarely answered completely. Static has  three distinct uses in C:  &lt;/span&gt;&lt;/p&gt;   &lt;p style="color: rgb(0, 0, 0);"&gt;  &lt;/p&gt;&lt;ul style="color: rgb(0, 0, 0);"&gt;&lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;li&gt;A variable declared static within the body of a function maintains its value between function invocations &lt;/li&gt;  &lt;li&gt;A variable declared static within a module, (but outside the body of a function) is accessible by all functions within that module. It is not accessible by functions within any other module. That is, it is a localized global &lt;/li&gt;  &lt;li&gt;Functions declared static within a module may only be called by other functions within that module. That is, the scope  of the function is localized to the module within which it is declared &lt;/li&gt;  &lt;/span&gt;&lt;/ul&gt;      &lt;p style="color: rgb(0, 0, 0);"&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;Most candidates get the first part correct. A reasonable number get the second part correct, while a pitiful number understand the third answer. This is a serious weakness in a candidate, since he obviously doesn't understand the importance and benefits of localizing the scope of both data and code. &lt;/span&gt;&lt;/p&gt;   &lt;p style="color: rgb(0, 0, 0);"&gt;  &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;span style="color: rgb(153, 51, 51);font-family:Verdana,Georgia,Sans-Serif;" &gt;&lt;b&gt;Const &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;7.  &lt;i&gt;What does  the keyword const mean? &lt;/i&gt;  &lt;/span&gt;&lt;/p&gt;   &lt;p style="color: rgb(0, 0, 0);"&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;As soon as the interviewee says "const means constant," I know I'm dealing with an amateur. Dan Saks has exhaustively covered  &lt;b&gt;const &lt;/b&gt; in the last year, such that every reader of ESP should be extremely familiar with what const can and cannot do for you. If you haven't been reading that column, suffice it to say that &lt;b&gt;const &lt;/b&gt; means "read-only." Although this answer doesn't really do the subject justice, I'd accept it as a correct answer. (If you want the detailed answer, read Saks' columns-carefully!) &lt;/span&gt;&lt;/p&gt;   &lt;p style="color: rgb(0, 0, 0);"&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;If the candidate gets the answer correct, I'll ask him these supplemental questions:  &lt;/span&gt;&lt;/p&gt;   &lt;p style="color: rgb(0, 0, 0);"&gt;  &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;i&gt;What do the following declarations mean? &lt;/i&gt;  &lt;/span&gt;&lt;/p&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;span style="font-family:Verdana,Georgia,Sans-Serif;"&gt;&lt;b&gt;&lt;br /&gt;const int a;&lt;br /&gt;int const a;&lt;br /&gt;const int *a;&lt;br /&gt;int * const a;&lt;br /&gt;int const * a const;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;     &lt;p style="color: rgb(0, 0, 0);"&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;The first two mean the same thing, namely  &lt;b&gt;a &lt;/b&gt; is a const (read-only) integer.  The third means  &lt;b&gt;a &lt;/b&gt; is a pointer to a const integer (that is,  the integer isn't modifiable, but the pointer is). The fourth declares  &lt;b&gt;a &lt;/b&gt; to be a const pointer to an integer (that is, the integer pointed to by a is modifiable, but the pointer is not). The final declaration declares &lt;b&gt;a &lt;/b&gt; to be a const pointer to a const integer (that is, neither the integer pointed to by a, nor the pointer itself may be modified). If the candidate correctly answers these questions, I'll be impressed. Incidentally, you might wonder why I put so much emphasis on const, since it is easy to write a correctly functioning program without ever using it. I have several reasons: &lt;/span&gt;&lt;/p&gt;   &lt;p style="color: rgb(0, 0, 0);"&gt;  &lt;/p&gt;&lt;ul style="color: rgb(0, 0, 0);"&gt;&lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;li&gt;The use of  &lt;b&gt;const &lt;/b&gt; conveys some very useful information to someone reading your code. In effect, declaring a parameter  &lt;b&gt;const &lt;/b&gt; tells the user about its intended usage. If you spend a lot of time cleaning up the mess left by other people, you'll quickly learn to appreciate this extra piece of information. (Of course, programmers who use &lt;b&gt;const &lt;/b&gt;, rarely leave a mess for others to  clean up.) &lt;/li&gt;  &lt;li&gt;&lt;b&gt;const &lt;/b&gt; has the potential for generating tighter code by giving the optimizer some additional information &lt;/li&gt;  &lt;li&gt;Code that uses  &lt;b&gt;const &lt;/b&gt; liberally is inherently protected by the compiler against inadvertent coding constructs that result in parameters being changed that should not be. In short, they tend to have fewer bugs &lt;/li&gt;  &lt;/span&gt;&lt;/ul&gt;     &lt;p style="color: rgb(0, 0, 0);"&gt;  &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;span style="color: rgb(153, 51, 51);font-family:Verdana,Georgia,Sans-Serif;" &gt;&lt;b&gt;Volatile &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;8.  &lt;i&gt;What does the keyword volatile mean?  Give three different examples of its use. &lt;/i&gt;  &lt;/span&gt;&lt;/p&gt;   &lt;p style="color: rgb(0, 0, 0);"&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;A  &lt;b&gt;volatile &lt;/b&gt; variable is one that can change unexpectedly. Consequently, the compiler can make no assumptions about the value of the variable. In particular, the optimizer must be careful to reload the variable every time it is used instead of holding a copy in a register. Examples of &lt;b&gt;volatile &lt;/b&gt; variables are:  &lt;/span&gt;&lt;/p&gt;   &lt;p style="color: rgb(0, 0, 0);"&gt;  &lt;/p&gt;&lt;ul style="color: rgb(0, 0, 0);"&gt;&lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;li&gt;Hardware registers in peripherals (for example, status registers) &lt;/li&gt;  &lt;li&gt;Non-automatic variables referenced  within an interrupt service routine &lt;/li&gt;  &lt;li&gt;Variables shared by multiple tasks in a multi-threaded application &lt;/li&gt;  &lt;/span&gt;&lt;/ul&gt;     &lt;p style="color: rgb(0, 0, 0);"&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;Candidates who don't know the answer to this question aren't hired. I consider this the most fundamental question that distinguishes between a C programmer and an embedded systems programmer. Embedded folks deal with hardware, interrupts, RTOSes, and the like. All of these require volatile variables. Failure to understand the concept of &lt;b&gt;volatile &lt;/b&gt; will lead to disaster.  &lt;/span&gt;&lt;/p&gt;   &lt;p style="color: rgb(0, 0, 0);"&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;On the (dubious) assumption that the interviewee gets this question correct, I like to probe a little deeper to see if they really understand the full significance of &lt;b&gt;volatile &lt;/b&gt;. In particular, I'll ask them the following additional questions:  &lt;/span&gt;&lt;/p&gt;   &lt;p style="color: rgb(0, 0, 0);"&gt;  &lt;/p&gt;&lt;ul style="color: rgb(0, 0, 0);"&gt;&lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;li&gt;Can a parameter be both const and  &lt;b&gt;volatile &lt;/b&gt;? Explain. &lt;/li&gt;  &lt;li&gt;Can a pointer be  &lt;b&gt;volatile &lt;/b&gt;? Explain. &lt;/li&gt;  &lt;li&gt;What's wrong with the following function?:  &lt;/li&gt;  &lt;/span&gt;&lt;/ul&gt;      &lt;p style="color: rgb(0, 0, 0);"&gt;  &lt;/p&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;span style="font-family:Verdana,Georgia,Sans-Serif;"&gt;&lt;b&gt;&lt;br /&gt;int square(volatile int *ptr)&lt;br /&gt;{&lt;br /&gt;return *ptr * *ptr;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;     &lt;p style="color: rgb(0, 0, 0);"&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;The answers are as follows:  &lt;/span&gt;&lt;/p&gt;&lt;ul style="color: rgb(0, 0, 0);"&gt;&lt;p&gt;  &lt;/p&gt;&lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;li&gt;Yes. An example is a read-only status register. It is volatile because it can change unexpectedly. It is const because the program should not attempt to modify it &lt;/li&gt;  &lt;li&gt;Yes, although this is not very common. An example is when an interrupt service routine modifies a pointer to a buffer &lt;/li&gt;  &lt;li&gt;This one is wicked. The intent of the code is to return the square of the  value pointed to by  &lt;b&gt;*ptr &lt;/b&gt;. However, since  &lt;b&gt;*ptr &lt;/b&gt; points to a volatile parameter, the compiler will generate code that looks something like this: &lt;/li&gt;  &lt;/span&gt;&lt;/ul&gt;     &lt;p style="color: rgb(0, 0, 0);"&gt;  &lt;/p&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;span style="font-family:Verdana,Georgia,Sans-Serif;"&gt;&lt;b&gt;&lt;br /&gt;int square(volatile int *ptr)&lt;br /&gt;{&lt;br /&gt;int a,b;&lt;br /&gt;a = *ptr;&lt;br /&gt;b = *ptr;&lt;br /&gt;return a * b;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;     &lt;p style="color: rgb(0, 0, 0);"&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;Because it's possible for the value of  &lt;b&gt;*ptr &lt;/b&gt; to change unexpectedly, it is possible for  &lt;b&gt;a &lt;/b&gt; and  &lt;b&gt;b &lt;/b&gt; to be different. Consequently, this code  could return a number that is not a square! The correct way to code this is:  &lt;/span&gt;&lt;/p&gt;   &lt;p style="color: rgb(0, 0, 0);"&gt;  &lt;/p&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;span style="font-family:Verdana,Georgia,Sans-Serif;"&gt;&lt;b&gt;&lt;br /&gt;long square(volatile int *ptr)&lt;br /&gt;{&lt;br /&gt;int a;&lt;br /&gt;a = *ptr;&lt;br /&gt;return a * a;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;     &lt;p style="color: rgb(0, 0, 0);"&gt;  &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;span style="color: rgb(153, 51, 51);font-family:Verdana,Georgia,Sans-Serif;" &gt;&lt;b&gt;Bit manipulation &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;9.  &lt;i&gt;Embedded systems always require the user to manipulate bits in registers or variables. Given an integer variable a, write two code fragments. The first should set bit 3 of a. The second should clear bit 3 of a. In both cases, the remaining bits should be unmodified. &lt;/i&gt;  &lt;/span&gt;&lt;/p&gt;   &lt;p style="color: rgb(0, 0, 0);"&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;These are the three basic responses to this question:  &lt;/span&gt;&lt;/p&gt;   &lt;p style="color: rgb(0, 0, 0);"&gt;  &lt;/p&gt;&lt;ul style="color: rgb(0, 0, 0);"&gt;&lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;li&gt;No idea. The interviewee cannot have done any embedded systems work &lt;/li&gt;  &lt;li&gt;Use bit fields. Bit fields are right up there with trigraphs as the most brain-dead portion of C. Bit fields are inherently non-portable across compilers, and as such guarantee that your code is not reusable. I recently had the misfortune to look at a driver written by Infineon for one of their more complex communications chips. It used bit fields and was completely useless because my compiler implemented the bit fields the other way around. The moral: never let a non-embedded person anywhere near a real piece of hardware! &lt;/li&gt;  &lt;li&gt;Use  &lt;b&gt;#defines &lt;/b&gt; and bit masks. This is a highly portable method and is the one that should be used. My optimal solution to this problem would be: &lt;/li&gt;  &lt;/span&gt;&lt;/ul&gt;     &lt;p style="color: rgb(0, 0, 0);"&gt;  &lt;/p&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;span style="font-family:Verdana,Georgia,Sans-Serif;"&gt;&lt;b&gt;&lt;br /&gt;#define BIT3 (0x1&lt;br /&gt;&lt; &lt;&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;span style="font-family:Verdana,Georgia,Sans-Serif;"&gt;&lt;b&gt;&lt;b&gt;void set_bit3(void) {&lt;br /&gt;a |= BIT3;&lt;br /&gt;}&lt;br /&gt;void clear_bit3(void) {&lt;br /&gt;a &amp;amp;= ~BIT3;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/pre&gt;&lt;b&gt;     &lt;/b&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;b&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;Some people prefer to define a mask together with manifest constants for the set and clear values. This is also acceptable. The element that I'm looking for is the use of manifest constants, together with the |= and &amp;amp;= ~ constructs &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;b&gt;   &lt;/b&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;b&gt;  &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;span style="color: rgb(153, 51, 51);font-family:Verdana,Georgia,Sans-Serif;" &gt;&lt;b&gt;Accessing fixed memory  locations &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;10.  &lt;i&gt;Embedded systems are often characterized by requiring the programmer to access a specific memory location. On a certain project it is required to set an integer variable at the absolute address 0x67a9 to the value 0xaa55. The compiler is a pure ANSI compiler. Write code to accomplish this task. &lt;/i&gt;  &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;b&gt;   &lt;/b&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;b&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;This problem tests whether you know that it is legal to typecast an integer to a pointer in order to access an absolute location. The exact syntax varies depending upon one's style. However, I would typically be looking for something like this: &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;b&gt;   &lt;/b&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/p&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;span style="font-family:Verdana,Georgia,Sans-Serif;"&gt;&lt;b&gt;&lt;b&gt;&lt;br /&gt;int *ptr;&lt;br /&gt;ptr = (int *)0x67a9;&lt;br /&gt;*ptr = 0xaa55;&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;b&gt;     &lt;/b&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;b&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;A more obscure approach is:  &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;b&gt;   &lt;/b&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/p&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;span style="font-family:Verdana,Georgia,Sans-Serif;"&gt;&lt;b&gt;&lt;b&gt;&lt;br /&gt;*(int * const)(0x67a9) = 0xaa55;&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;b&gt;     &lt;/b&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;b&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;Even if your taste runs more to the second solution, I suggest the first solution when you are in an interview situation.  &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;b&gt;   &lt;/b&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;b&gt;  &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;span style="color: rgb(153, 51, 51);font-family:Verdana,Georgia,Sans-Serif;" &gt;&lt;b&gt;Interrupts &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;11.  &lt;i&gt;Interrupts are an important part of embedded systems. Consequently, many compiler vendors offer an extension to standard C to support interrupts. Typically, this new keyword is __interrupt. The following code uses __interrupt to define an interrupt service routine (ISR). Comment on the code. &lt;/i&gt;  &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;b&gt;   &lt;/b&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/p&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;span style="font-family:Verdana,Georgia,Sans-Serif;"&gt;&lt;b&gt;&lt;b&gt;&lt;br /&gt;__interrupt double compute_area&lt;br /&gt;(double&lt;br /&gt;radius)&lt;br /&gt;{&lt;br /&gt;double area = PI * radius *&lt;br /&gt; radius;&lt;br /&gt;printf("\nArea = %f", area);&lt;br /&gt;return area;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;b&gt;     &lt;/b&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;b&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;This function has so much wrong with it, it's hard to know where to start:  &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;b&gt;   &lt;/b&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/p&gt;&lt;ul style="color: rgb(0, 0, 0);"&gt;&lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;li&gt;&lt;b&gt;ISRs cannot return a value. If you don't understand this, you aren't hired &lt;/b&gt;&lt;/li&gt;&lt;b&gt;  &lt;/b&gt;&lt;li&gt;&lt;b&gt;ISRs cannot be passed parameters. See the first item for your employment prospects if you missed this &lt;/b&gt;&lt;/li&gt;&lt;b&gt;  &lt;/b&gt;&lt;li&gt;&lt;b&gt;On many processors/compilers, floating-point operations are not necessarily re-entrant. In some cases one needs to stack additional registers. In other cases, one simply cannot do floating point in an ISR. Furthermore, given that a general rule of thumb is that ISRs should be short and sweet, one wonders about the wisdom of doing floating-point math here &lt;/b&gt;&lt;/li&gt;&lt;b&gt;  &lt;/b&gt;&lt;li&gt;&lt;b&gt;In a vein similar to the third point, printf() often has problems with reentrancy and performance. If you missed points three and four, I wouldn't be too hard on you. Needless to say, if you got these last two points, your employment prospects are looking better and better &lt;/b&gt;&lt;/li&gt;&lt;b&gt;  &lt;/b&gt;&lt;/span&gt;&lt;/ul&gt;&lt;b&gt;     &lt;/b&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;b&gt;  &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;span style="color: rgb(153, 51, 51);font-family:Verdana,Georgia,Sans-Serif;" &gt;&lt;b&gt;Code examples &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;12.  &lt;i&gt;What does the following code output and why? &lt;/i&gt;  &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;b&gt;   &lt;/b&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/p&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;span style="font-family:Verdana,Georgia,Sans-Serif;"&gt;&lt;b&gt;&lt;b&gt;&lt;br /&gt;void foo(void)&lt;br /&gt;{&lt;br /&gt;unsigned int a = 6;&lt;br /&gt;int b = -20;&lt;br /&gt; (a+b &gt; 6) ? puts("&gt; 6") :&lt;br /&gt;   puts("&lt;br /&gt;&lt; = 6"); }  &lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;b&gt;     &lt;/b&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;b&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;This question tests whether you understand the integer promotion rules in C-an area that I find is very poorly understood by many developers. Anyway, the answer is that this outputs "&gt; 6." The reason for this is that expressions involving signed and unsigned types have all operands promoted to unsigned types. Thus ý20 becomes a very large positive integer and the expression evaluates to greater than 6. This is a very important point in embedded systems where unsigned data types should be used frequently (see Reference 2). If you get this one wrong, you are perilously close to not getting the job. &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;b&gt;   &lt;/b&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;b&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;13.  &lt;i&gt;Comment on the following code fragment. &lt;/i&gt;  &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;b&gt;   &lt;/b&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/p&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;span style="font-family:Verdana,Georgia,Sans-Serif;"&gt;&lt;b&gt;&lt;b&gt;&lt;br /&gt;unsigned int zero = 0;&lt;br /&gt;unsigned int compzero = 0xFFFF;&lt;br /&gt;/*1's complement of zero */&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;b&gt;     &lt;/b&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;b&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;On machines where an int is not 16 bits, this will be incorrect. It should be coded:  &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;b&gt;   &lt;/b&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/p&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;span style="font-family:Verdana,Georgia,Sans-Serif;"&gt;&lt;b&gt;&lt;b&gt;&lt;br /&gt;unsigned int compzero = ~0;&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;b&gt;     &lt;/b&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;b&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;This question really gets to whether the candidate understands the importance of word length on a computer. In my experience, good embedded programmers are critically aware of the underlying hardware and its limitations, whereas computer programmers tend to dismiss the hardware as a necessary annoyance. &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;b&gt;   &lt;/b&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;b&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;By this stage, candidates are either completely demoralized-or they're on a roll and having a good time. If it's obvious that the candidate isn't very good, then the test is terminated at this point. However, if the candidate is doing well, then I throw in these supplemental questions. These questions are hard, and I expect that only the very best candidates will do well on them. In posing these questions, I'm looking more at the way the candidate tackles the problems, rather than the answers. Anyway, have fun... &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;b&gt;   &lt;/b&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;b&gt;  &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;span style="color: rgb(153, 51, 51);font-family:Verdana,Georgia,Sans-Serif;" &gt;&lt;b&gt;Dynamic memory allocation &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;14.  &lt;i&gt;Although not as common as in non-embedded computers, embedded systems do still dynamically allocate memory from the heap.  What are the problems with dynamic memory allocation in embedded systems?  &lt;/i&gt;  &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;b&gt;   &lt;/b&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;b&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;Here, I expect the user to mention memory fragmentation, problems with garbage collection, variable execution time, and so on. This topic has been covered extensively in &lt;i&gt;ESP &lt;/i&gt;, mainly by P.J. Plauger. His explanations are far more insightful than anything I could offer here, so go and read those back issues! Having lulled the candidate into a sense of false security, I then offer up this tidbit: &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;b&gt;   &lt;/b&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;b&gt;  &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;i&gt;What  does the following code fragment output and why?  &lt;/i&gt;  &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;b&gt;   &lt;/b&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/p&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;span style="font-family:Verdana,Georgia,Sans-Serif;"&gt;&lt;b&gt;&lt;b&gt;&lt;br /&gt;char *ptr;&lt;br /&gt;if ((ptr = (char *)malloc(0)) ==&lt;br /&gt; NULL)&lt;br /&gt;else&lt;br /&gt;puts("Got a null pointer");&lt;br /&gt;puts("Got a valid pointer");&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;b&gt;   &lt;span style="color: rgb(0, 0, 0);font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;    &lt;/span&gt;&lt;/b&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;b&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;This is a fun question. I stumbled across this only recently when a colleague of mine inadvertently passed a value of 0 to  &lt;b&gt;malloc &lt;/b&gt; and got back a valid pointer! That is, the above code will output "Got a valid pointer." I use this to start a discussion on whether the interviewee thinks this is the correct thing for the library routine to do. Getting the right answer here is not nearly as important as the way you approach the problem and the rationale for your decision. &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;b&gt;   &lt;/b&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;b&gt;  &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;span style="color: rgb(153, 51, 51);font-family:Verdana,Georgia,Sans-Serif;" &gt;&lt;b&gt;Typedef &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;15.  &lt;b&gt;Typedef &lt;/b&gt;  &lt;i&gt;is frequently used in C to declare synonyms for pre-existing data types. It is also possible to use the preprocessor to do something similar. For instance, consider the following code fragment: &lt;/i&gt;  &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;b&gt;   &lt;/b&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/p&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;span style="font-family:Verdana,Georgia,Sans-Serif;"&gt;&lt;b&gt;&lt;b&gt;&lt;br /&gt;#define dPS  struct s *&lt;br /&gt;typedef  struct s * tPS;&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;b&gt;     &lt;/b&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;b&gt;  &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;i&gt;The intent in both cases is to define &lt;/i&gt;  &lt;b&gt;dPS &lt;/b&gt;  &lt;i&gt;and &lt;/i&gt;  &lt;b&gt;tPS &lt;/b&gt;  &lt;i&gt;to be pointers to structure s. Which method, if any, is preferred and why?  &lt;/i&gt;  &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;b&gt;   &lt;/b&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;b&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;This is a very subtle question, and anyone who gets it right (for the right reason) is to be congratulated or condemned ("get a  life" springs to mind). The answer is the  &lt;b&gt;typedef &lt;/b&gt; is preferred. Consider the declarations:  &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;b&gt;   &lt;/b&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/p&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;span style="font-family:Verdana,Georgia,Sans-Serif;"&gt;&lt;b&gt;&lt;b&gt;&lt;br /&gt;dPS p1,p2;&lt;br /&gt;tPS p3,p4;&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;b&gt;     &lt;/b&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;b&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;The first expands to:  &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;b&gt;   &lt;/b&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/p&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;span style="font-family:Verdana,Georgia,Sans-Serif;"&gt;&lt;b&gt;&lt;b&gt;&lt;br /&gt;struct s * p1, p2;&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;b&gt;     &lt;/b&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;b&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;which defines  &lt;b&gt;p1 &lt;/b&gt; to be a pointer to the structure and  &lt;b&gt;p2 &lt;/b&gt; to be an actual structure, which is probably not what you wanted. The second example  correctly defines  &lt;b&gt;p3 &lt;/b&gt; and  &lt;b&gt;p4 &lt;/b&gt; to be pointers.    &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;b&gt;   &lt;/b&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;b&gt;  &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;span style="color: rgb(153, 51, 51);font-family:Verdana,Georgia,Sans-Serif;" &gt;&lt;b&gt;Obscure syntax &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;16.  &lt;i&gt;C allows some appalling constructs. Is this construct legal, and if so what does this code do?  &lt;/i&gt;  &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;b&gt;   &lt;/b&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/p&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;span style="font-family:Verdana,Georgia,Sans-Serif;"&gt;&lt;b&gt;&lt;b&gt;&lt;br /&gt;int a = 5, b = 7, c;&lt;br /&gt;c = a+++b;&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;b&gt;     &lt;/b&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;b&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;This question is intended to be a lighthearted end to the quiz, as, believe it or not, this is perfectly legal syntax. The question is how does the compiler treat it? Those poor compiler writers actually debated this issue, and came up with the "maximum munch" rule, which stipulates that the compiler should bite off as big (and legal) a chunk as it can. Hence, this code is treated as: &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;b&gt;   &lt;/b&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/p&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;span style="font-family:Verdana,Georgia,Sans-Serif;"&gt;&lt;b&gt;&lt;b&gt;&lt;br /&gt;c = a++ + b;&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;b&gt;     &lt;/b&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;b&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;Thus, after this code is executed, a = 6, b = 7, and c = 12.  &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;b&gt;   &lt;/b&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;b&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;If you knew the answer, or guessed correctly, well done. If you didn't know the answer then I wouldn't consider this to be a problem. I find the greatest benefit of this question is that it is good for stimulating questions on coding styles, the value of code reviews, and the benefits of using lint. &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;b&gt;   &lt;/b&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;b&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;Well folks, there you have it. That was my version of the C test. I hope you had as much fun taking it as I had writing it. If you think the test is a good test, then by all means use it in your recruitment. Who knows, I may get lucky in a year or two and end up being on the receiving end of my own work. &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;b&gt;   &lt;/b&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;b&gt; &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;Nigel Jones is a consultant living in Maryland. When not underwater, he can be found slaving away on a diverse range of embedded projects. He enjoys hearing from readers and can be reached at &lt;a href="mailto:NAJones@compuserve.com"&gt;NAJones@compuserve.com &lt;/a&gt;.  &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;b&gt;   &lt;/b&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;b&gt;  &lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;span style="color: rgb(153, 51, 51);font-family:Verdana,Georgia,Sans-Serif;" &gt;&lt;b&gt;References &lt;/b&gt;&lt;/span&gt;  &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;ul style="color: rgb(255, 255, 255);"&gt;&lt;span style=";font-family:Verdana,Georgia,Arial,Sans-Serif;font-size:100%;"  &gt;&lt;li style="color: rgb(0, 0, 0);"&gt;&lt;b&gt;Jones, Nigel, "In Praise of the #error directive," Embedded Systems  Programming, September 1999, p. 114.  &lt;/b&gt;&lt;/li&gt;&lt;b&gt;  &lt;/b&gt;&lt;li&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;b&gt;Jones, Nigel, " &lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;a style="color: rgb(0, 0, 0);" href="http://www.embedded.com/98/9811/9811fe3.htm"&gt;Efficient C Code for Eight-bit MCUs &lt;/a&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;," Embedded Systems Programming, November 1998, p. 66&lt;/span&gt;. &lt;/b&gt;&lt;/li&gt;&lt;b&gt;  &lt;/b&gt;&lt;/span&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/901731529797120613-1305640094953677660?l=gucatheprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gucatheprogrammer.blogspot.com/feeds/1305640094953677660/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=901731529797120613&amp;postID=1305640094953677660' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/901731529797120613/posts/default/1305640094953677660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/901731529797120613/posts/default/1305640094953677660'/><link rel='alternate' type='text/html' href='http://gucatheprogrammer.blogspot.com/2007/10/embedded-c-faq.html' title='Embedded C  FAQ'/><author><name>C.A.Gundapi</name><uri>http://www.blogger.com/profile/08048446140232199246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_ITAszZFPWS0/R8PwyMuPerI/AAAAAAAAAA0/55Zg_WoNFHA/S220/IMG_9173.JPG'/></author><thr:total>3</thr:total></entry></feed>
