The Curious Case of Preprocessors


What would be the output of the following code snippet: #include <stdio.h> #define V 1 int main() { int Value = 1; #if V == Value printf("Hello world\n"); #endif // V return 0; } If you guessed that the program will print "Hello world" you are wrong. The reason being #if is a preprocessor directive …

Continue reading The Curious Case of Preprocessors

My Experiments with Boost Graph Library


Recently I picked up "An Introduction to Graph Theory" by Robin J. Wilson. After going through a couple of chapters I felt the sudden urge to try out a few of graph theory problems through programming. To try out the algorithms I first need to create the graphs themselves, which seemed a bit of a …

Continue reading My Experiments with Boost Graph Library

Range Based For Loops in C++11


Here is a short post on the range based for loops in C++. I recently learned about range based for loops in C++11 standards. These are nothing but easier constructs on writing loops. You no longer have to write: for(initialization;condition;update) The syntax is: for(declaration:expression) Although this looks like a very simple feature there are a few things …

Continue reading Range Based For Loops in C++11

Calling a function On termination of main() in C


Dear readers, A friend of mine taught me this new "trick" where you can call a function when the main() in C exits. In the Library "stdlib.h" there exists a function int atexit(void (*func)(void)) the "func" is any function without any arguments. The atexit() calls the function that you register as soon as the main() …

Continue reading Calling a function On termination of main() in C

The World of Dynamic Programming


Recently I came across the an algorithm that can find the maximum sub array in a given 1-D array. Its called the Kadane's algorithm.It comes under the domain of dynamic programming. I would like to write about a few things I understood about Dynamic programing so that it may help someone else to get a …

Continue reading The World of Dynamic Programming