关于gcc-4.8.5
#include<iostream>
#include<stdio.h>
using namespace std;
#define CONVERT(a, str) (sprintf(str , "%llu", a))
int main()
{
char str[10];
CONVERT(10, str);
cout<<" Str = "<<str<<endl;
return 0;
}
输出 - Str = 10
但DevC ++上的相同代码会打印一些垃圾值(总是相同)。无法找到问题。https://basarat.gitbooks.io/typescript/content/docs/types/migrating.html
编辑: - 如果我这样做 - CONVERT((unsigned long long)10, str);
- 它运作正常。
但问题仍然存在吗?为什么这两个编译器之间存在这种差异?只是在那里实现了隐藏的东西?