Saturday, October 13, 2012

Difference Between Build and Compilation in C/C++


Build is the process to compile and link only the source files that have changed since the last build (i.e. based on file creation date and time).

Rebuild is the process to compile and link all source files regardless of whether they changed or not. Build is the normal thing to do and is faster. Sometimes the versions of project target components can get out of sync and rebuild is necessary to make the build successful.

Compilation is compiles the source file currently being edited.

The compilation of code involves several steps:

  • Parsing of the statements for syntax (language based)
  • Translation of the statements into machine language
  • Setting up the addresses of all variables
  • Optimization of the code (if desired)

Thursday, October 4, 2012

Bitwise Operators and Byte to Bit Conversion

# include "stdio.h"
# include "string.h"

const char* byte_to_binary( int x );
int main()
{

    int nInput=0, nOutput=2, nBitPos;

    // To set the bit in particular position.
    nInput |= (1 << nOutput);
    printf("To set the %d Position from 1bit of %s\n",nOutput, byte_to_binary(nInput));

    // To Reset/Clear the bit in particular position.
    nInput &= ~(1 << nOutput);
    printf("To Reset/Clear the %d Position from 1bit of %s\n",nOutput, byte_to_binary(nInput));

    // To toggle the bit in particular position.
    nInput =5; // 00000101 expected like 00000001
    nInput ^= (1 << nOutput);
    printf("To toggle the %d Position from 1bit of %s\n",nOutput, byte_to_binary(nInput));

    // To state of the bit in particular position.
    nInput =5; // 00000101 expected like 00000101
    nBitPos = nInput &(1 << nOutput);
    printf("To state of the %d Position from 1bit of %s:: state of bit: %d\n",nOutput, byte_to_binary(nInput), nBitPos);


return 0;
}



//To Byte to Binary Conversion
const char* byte_to_binary( int x )
{
    static char b[9] = {0};
    int z, y;

    for (z=128,y=0; z>0; z>>=1,y++)
    {
        b[y] = ( ((x & z) == z) ? '1' : '0');
    }

    b[y] = 0;

    return b;
}



Output:
To set the 2 Position from 1bit of 00000100
To Reset/Clear the 2 Position from 1bit of 00000000
To toggle the 2 Position from 1bit of 00000001
To state of the 2 Position from 1bit of 00000101:: state of bit: 4

Tuesday, August 21, 2012

Several CMD Commands in parallel Execution


start cmd.exe /c "C:\Program Files\Mozilla Firefox\firefox.exe"
exit
start cmd.exe /c "C:\Program Files\Microsoft Office\OFFICE11\OUTLOOK.EXE"
exit

1. make these commands as *.bat file.

2. Keep this new *.bat file in "C:\Documents and Settings\All Users\Start Menu\Programs\Startup" location.

3. While login windows OS, it will invoke the above *.exe automatically.

Advantage:
** It will reduce the number of user interaction for every login.

Friday, August 3, 2012

QuickSort function Sample Code

//Program to sort names in an array using quicksort
#include <stdio.h
>
#include<conio.h>
#include <stdlib.h>
#include <string.h>

int sort_function( const void *a, const void *b);

char list[5][4] = { "cat", "car", "cab", "cap", "can" };

int main(void)
{
int x;
clrscr();
qsort((void *)list, 5, sizeof(list[0]), sort_function);
for (x = 0; x
< 5; x++)
printf("%s ", list[x]);
getch();
return 0;
}

int sort_function(const void *a,const void *b)
{
return( strcmp((char *)a,(char *)b) );
}

Wednesday, July 18, 2012

Logic Thinking

#include <stdio.h>
#include <conio.h>

int main()
{
#define HAPPY (1)
#define SATISFIED (1)
if(!HAPPY != SATISFIED)
{
printf("Life");
}
else
{
printf("Heaven");
}

getch();
return 0;
}

Output:



Its in Your Hand


Ans: Life

Wednesday, June 20, 2012

C PreProcessor and Intermediate C Code

# include <stdio.h>
# include <windows.h>

# define MAX 10


int main()
{
 static int nVariabe; // To understand the static variable constant
 int nloop=0;

    for (;nloop<MAX;nloop++)
    {
        nVariabe++;
        printf("%d static variable %d\n",nloop,nVariabe);

    }

 return 0;

}

 Please Check the For Condition .
From this code you will get the intermediate code information and understanding the C Macros.

Output for intermediate C code Generation




Static Variable Declaration without Data Type

# include <stdio.h>
# include <windows.h>

# define MAX 10


int main()
{
 static nVariabe; // To understand the static variable constant
 int nloop=0;

    for (;nloop<MAX;nloop++)
    {
        nVariabe++;
        printf("%d static variable %d\n",nloop,nVariabe);

    }

 return 0;

}

OUTPUT:

Here, everybody feels like compilation will abort. But, actual result is below,.
0 static variable 1
1 static variable 2
2 static variable 3
3 static variable 4
4 static variable 5
5 static variable 6
6 static variable 7
7 static variable 8
8 static variable 9
9 static variable 10

Note: We will get only Warning....

Description    Resource    Path    Location    Type
type defaults to `int' in declaration of `nVariabe'    Code.c    /intermediateCode    line 17    C/C++ Problem

Saturday, March 24, 2012

User File Browser in VBA

Sub User_FileBrowser()

Dim varFileName As Variant
Dim nLoop As Integer

'For single file selction
'varFileName = Application.GetOpenFilename(, , "Please select source workbook:")

'For Multiple file selection
varFileName = Application.GetOpenFilename(FileFilter:="Excel files (*.xls), *.xls", Title:="Please select source workbook:", MultiSelect:=True)
nLoop = 1


Do

If TypeName(varFileName(nLoop)) = "String" Then
Cells(2, 2).Value = varFileName(nLoop)
Else

MsgBox "Please Select the xls file", vbOKOnly, "Warning!"
Exit Sub

End If

nLoop = nLoop + 1
Loop Until nLoop = UBound(varFileName)

End Sub

How to create message Box2 in VBA

Sub Msg_Box()


MsgBox "Testbox", vbYesNo, "karthiken07"

OutPut
End Sub