宏为不同的编译器提供不同的值

时间:2016-12-02 11:33:51

标签: c++

关于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); - 它运作正常。 但问题仍然存在吗?为什么这两个编译器之间存在这种差异?只是在那里实现了隐藏的东西?

0 个答案:

没有答案