/* hoge.cpp */
#include <cstdio>
int main(void){
std::printf("An"); // printf("A\n"); でも同じエラー
return 0;
}

gcc hoge.cpp
とするとエラーになる(gcc4.0.0)。どうしてなんでしょうか?

逆にxcode2.0でやると、std::の有無に関わらずエラー無し。これも変だと思う。
std::が無ければエラーにならなきゃだめでしょ?