Question: Whenever I compile [SQLite](http://www.sqlite.org) with Visual C++ 9 I get hundreds of warnings, such as

* potentially uninitialized variables
* conversion from wider integer types to narrower integer types
* signed/unsigned integers mismatches.

I'm not alone - there's an [SQLite FAQ question](http://www.sqlite.org/faq.html#q17) specifically about that. The answer to that question says that

* those warnings don't arise in GCC that SQLite developers use
* warnings are not that of a problem since the team tests code thorougly

Of course I can't argue against those points, but...

* I don't use GCC - I use VC++ and VC++ does show warnings
* they tested the code compiled with GCC and I don't use GCC, so there might be some implementation-defined difference or something like different levels of C standard compliance between GCC and VC++ that will subtly break the code with severe consequences.

That's why I don't like the idea of simply ignoring all warnings.

So how do I deal with warnings VC++ displays when compiling SQLite?

Answer: 
Why not use `#pragmas` to disable these warnings if they're not actually causing any harm? Or switch to a lower warning level (as I assume you have the SQLite source as a separate VC lib project?)
I would say that compiling something as complicated as SQLite, using a compiler and libraries the developers themselves say they never use, is doomed to failure, or at the least will be very, very painful. GCC is easy to install and use on Windows (get it from <http://tdragon.net/recentgcc>), so why not use it?