У меня есть кусок кода:
Под Windows MSVC 2012
Почему printf выводит ноль для ненулевого двойника?
#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/ what-are-the-rules-about-use-an-underscore-in-ac-identifier) – chris
Голосование для удержания, поскольку описанная проблема вызвана простым недоразумением (% d вместо% f). – jogojapan