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?)
Select the files in the VC9 solution explorer, right-click, choose "properties".
Then go to the `C++` -> `General` tab and set the `Warning level` to `Off`.
That will turn off all warnings for those files only.

I do that with most of the external lib files I use: there's no gain to 'fix' those (if they're not really bugs), and turning off the warnings helps to keep the build output window clean so I don't miss warnings in my own code.