Longest code to add two numbers Task:

I know we can all add two numbers the short way, using +. Your task is to create the longest code you can to add two input numbers.

Rules:


All of the code must be on topic (don't fill it with non-addition code to add length)
The count is in characters, but do not count tabs, spaces, or newlines.
Do not use extraneously long variable names
This is code-bowling, so the longest answer wins!
C - 2,739,341,494,945,868,415,002 (Not including whitespace)

Brute force for the win. Only handles integers, and preserves overflow behavior. Here's a snippet of the code:

int addnumbers(int x, int y)
{
    if (x == -2147483648 &amp;&amp; y == -2147483648) return 0;
    if (x == -2147483648 &amp;&amp; y == -2147483647) return 1;
    if (x == -2147483648 &amp;&amp; y == -2147483646) return 2;
    if (x == -2147483648 &amp;&amp; y == -2147483645) return 3;
    if (x == -2147483648 &amp;&amp; y == -2147483644) return 4;
    if (x == -2147483648 &amp;&amp; y == -2147483643) return 5;
    if (x == -2147483648 &amp;&amp; y == -2147483642) return 6;
    if (x == -2147483648 &amp;&amp; y == -2147483641) return 7;
    if (x == -2147483648 &amp;&amp; y == -2147483640) return 8;
    if (x == -2147483648 &amp;&amp; y == -2147483639) return 9;
    if (x == -2147483648 &amp;&amp; y == -2147483638) return 10;
    if (x == -2147483648 &amp;&amp; y == -2147483637) return 11;
    if (x == -2147483648 &amp;&amp; y == -2147483636) return 12;
    if (x == -2147483648 &amp;&amp; y == -2147483635) return 13;
    if (x == -2147483648 &amp;&amp; y == -2147483634) return 14;
    if (x == -2147483648 &amp;&amp; y == -2147483633) return 15;
    if (x == -2147483648 &amp;&amp; y == -2147483632) return 16;
    if (x == -2147483648 &amp;&amp; y == -2147483631) return 17;
    if (x == -2147483648 &amp;&amp; y == -2147483630) return 18;
    if (x == -2147483648 &amp;&amp; y == -2147483629) return 19;
    if (x == -2147483648 &amp;&amp; y == -2147483628) return 20;
    if (x == -2147483648 &amp;&amp; y == -2147483627) return 21;
    if (x == -2147483648 &amp;&amp; y == -2147483626) return 22;
    if (x == -2147483648 &amp;&amp; y == -2147483625) return 23;
    if (x == -2147483648 &amp;&amp; y == -2147483624) return 24;
    if (x == -2147483648 &amp;&amp; y == -2147483623) return 25;
    if (x == -2147483648 &amp;&amp; y == -2147483622) return 26;
    if (x == -2147483648 &amp;&amp; y == -2147483621) return 27;
    if (x == -2147483648 &amp;&amp; y == -2147483620) return 28;
    if (x == -2147483648 &amp;&amp; y == -2147483619) return 29;
    if (x == -2147483648 &amp;&amp; y == -2147483618) return 30;
    if (x == -2147483648 &amp;&amp; y == -2147483617) return 31;
    if (x == -2147483648 &amp;&amp; y == -2147483616) return 32;
    if (x == -2147483648 &amp;&amp; y == -2147483615) return 33;
    if (x == -2147483648 &amp;&amp; y == -2147483614) return 34;
    if (x == -2147483648 &amp;&amp; y == -2147483613) return 35;
    if (x == -2147483648 &amp;&amp; y == -2147483612) return 36;
    if (x == -2147483648 &amp;&amp; y == -2147483611) return 37;
    if (x == -2147483648 &amp;&amp; y == -2147483610) return 38;
    if (x == -2147483648 &amp;&amp; y == -2147483609) return 39;
    if (x == -2147483648 &amp;&amp; y == -2147483608) return 40;
    if (x == -2147483648 &amp;&amp; y == -2147483607) return 41;
    if (x == -2147483648 &amp;&amp; y == -2147483606) return 42;
    if (x == -2147483648 &amp;&amp; y == -2147483605) return 43;
    if (x == -2147483648 &amp;&amp; y == -2147483604) return 44;
    if (x == -2147483648 &amp;&amp; y == -2147483603) return 45;
    if (x == -2147483648 &amp;&amp; y == -2147483602) return 46;
    if (x == -2147483648 &amp;&amp; y == -2147483601) return 47;
    if (x == -2147483648 &amp;&amp; y == -2147483600) return 48;
    if (x == -2147483648 &amp;&amp; y == -2147483599) return 49;
    if (x == -2147483648 &amp;&amp; y == -2147483598) return 50;
    if (x == -2147483648 &amp;&amp; y == -2147483597) return 51;
    if (x == -2147483648 &amp;&amp; y == -2147483596) return 52;
    if (x == -2147483648 &amp;&amp; y == -2147483595) return 53;
    if (x == -2147483648 &amp;&amp; y == -2147483594) return 54;
    if (x == -2147483648 &amp;&amp; y == -2147483593) return 55;
    if (x == -2147483648 &amp;&amp; y == -2147483592) return 56;
    if (x == -2147483648 &amp;&amp; y == -2147483591) return 57;
    if (x == -2147483648 &amp;&amp; y == -2147483590) return 58;
    if (x == -2147483648 &amp;&amp; y == -2147483589) return 59;
    if (x == -2147483648 &amp;&amp; y == -2147483588) return 60;
    if (x == -2147483648 &amp;&amp; y == -2147483587) return 61;
    if (x == -2147483648 &amp;&amp; y == -2147483586) return 62;
    if (x == -2147483648 &amp;&amp; y == -2147483585) return 63;
    if (x == -2147483648 &amp;&amp; y == -2147483584) return 64;
    if (x == -2147483648 &amp;&amp; y == -2147483583) return 65;
    if (x == -2147483648 &amp;&amp; y == -2147483582) return 66;
    if (x == -2147483648 &amp;&amp; y == -2147483581) return 67;
    if (x == -2147483648 &amp;&amp; y == -2147483580) return 68;
    if (x == -2147483648 &amp;&amp; y == -2147483579) return 69;
    if (x == -2147483648 &amp;&amp; y == -2147483578) return 70;
    if (x == -2147483648 &amp;&amp; y == -2147483577) return 71;
    if (x == -2147483648 &amp;&amp; y == -2147483576) return 72;
    if (x == -2147483648 &amp;&amp; y == -2147483575) return 73;
    if (x == -2147483648 &amp;&amp; y == -2147483574) return 74;
    if (x == -2147483648 &amp;&amp; y == -2147483573) return 75;
    if (x == -2147483648 &amp;&amp; y == -2147483572) return 76;
    if (x == -2147483648 &amp;&amp; y == -2147483571) return 77;
    if (x == -2147483648 &amp;&amp; y == -2147483570) return 78;
    if (x == -2147483648 &amp;&amp; y == -2147483569) return 79;
    if (x == -2147483648 &amp;&amp; y == -2147483568) return 80;
    if (x == -2147483648 &amp;&amp; y == -2147483567) return 81;
    if (x == -2147483648 &amp;&amp; y == -2147483566) return 82;
    if (x == -2147483648 &amp;&amp; y == -2147483565) return 83;
    if (x == -2147483648 &amp;&amp; y == -2147483564) return 84;
    if (x == -2147483648 &amp;&amp; y == -2147483563) return 85;
    if (x == -2147483648 &amp;&amp; y == -2147483562) return 86;
    if (x == -2147483648 &amp;&amp; y == -2147483561) return 87;
    if (x == -2147483648 &amp;&amp; y == -2147483560) return 88;
    if (x == -2147483648 &amp;&amp; y == -2147483559) return 89;
    if (x == -2147483648 &amp;&amp; y == -2147483558) return 90;
    if (x == -2147483648 &amp;&amp; y == -2147483557) return 91;
    if (x == -2147483648 &amp;&amp; y == -2147483556) return 92;
    if (x == -2147483648 &amp;&amp; y == -2147483555) return 93;
    if (x == -2147483648 &amp;&amp; y == -2147483554) return 94;
    if (x == -2147483648 &amp;&amp; y == -2147483553) return 95;
    if (x == -2147483648 &amp;&amp; y == -2147483552) return 96;
    if (x == -2147483648 &amp;&amp; y == -2147483551) return 97;
    if (x == -2147483648 &amp;&amp; y == -2147483550) return 98;
    if (x == -2147483648 &amp;&amp; y == -2147483549) return 99;
    if (x == -2147483648 &amp;&amp; y == -2147483548) return 100;
    //etc...
}


This is obviously way to big to upload either here or on Pastebin, so here's a program that will generate the source code for the function (direct the output to a file - assuming you have the drive space):

#include &lt;stdio.h&gt;

int main()
{
   int x, y;
   printf("int addnumbers(int x, int y)\n{\n");
   for (x=-2147483648;x&lt;2147483648;x++) 
   {
      for (y=-2147483648;y&lt;2147483648;y++) 
      {
         printf("\tif (x == %d &amp;&amp; y == %d) return %d;\n", x, y, x+y);
      }
   }
   printf("}\n");
}


I shudder at how long the function for long longs would be...

EDIT: Recalculated the score (should be correct) to give exact count. I prefer to think that I golfed it by 10²² characters when I removed the whitespace.