我有一段代码:
在Windows MSVC 2012
为什么printf为非零的double输出零?
#include <stdio.h>
#include <string.h>
namespace myname{
double var = 42;
}
extern "C" double _ZN6myname3varE = 10.0;
int main(){
printf("%d\n", _ZN6myname3varE);
return 0;
}
输出是0
。但我认为输出应该是10
。你能解释为什么吗?
'd' - >'f' ... – Mysticial
我不确定*你想要什么,但它是[保留标识符](http://stackoverflow.com/questions/228783/)什么是关于使用下划线在交流标识符) – chris
投票搁置,因为所描述的问题是由一个简单的误解(%d而不是%f)造成的。 – jogojapan