I use Keil uVision to bulid a target there is no errors and warings.But Rebulid got 4 warinings,like: Warning C280: "ad_ ptr" unreferenced local variable
It (4) works for many compilers but for C251 it just yields another warning.
The alternative (3) to just mention the type without a name also just yields another warning.
Whatever steps you try to avoid, finally you will have to #pragma warning disable _some_ warning, which looks very ugly in the code to do it locally.