C++ _byteswap_ulong 未在此范围内声明
C++ _byteswap_ulong was not declared in this scope
当我尝试编译我的程序时出现此错误:
error: ‘_byteswap_ushort’ was not declared in this scope
long lNum = (long)_byteswap_ushort(iNum);
这是程序:
#include <iostream>
#include <sstream>
#include <stdlib.h>
using namespace std;
int main()
{
long inputNum;
cout << "Input number:\n";
cin >> inputNum;
long Num = (long)_byteswap_ulong(iNum);
stringstream oss;
oss << hex << Num;
string mystring = oss.str();
return 0;
}
我认为包含 stdlib 应该可以解决问题。我应该包括任何其他库吗?
程序编译为:
g++ -m32 -o output32 prog.cpp
您似乎在尝试使用特定于 MS Visual C++ 编译器的函数,该函数在 GCC 中不可用。请改用适当的 GCC builtin。
似乎 uint32_t __builtin_bswap32(uint32_t x)
适合这种情况。
另一个选择,如果你想要一个可移植的解决方案,将使用像 Boost Endian library.
这样的东西
当我尝试编译我的程序时出现此错误:
error: ‘_byteswap_ushort’ was not declared in this scope
long lNum = (long)_byteswap_ushort(iNum);
这是程序:
#include <iostream>
#include <sstream>
#include <stdlib.h>
using namespace std;
int main()
{
long inputNum;
cout << "Input number:\n";
cin >> inputNum;
long Num = (long)_byteswap_ulong(iNum);
stringstream oss;
oss << hex << Num;
string mystring = oss.str();
return 0;
}
我认为包含 stdlib 应该可以解决问题。我应该包括任何其他库吗?
程序编译为:
g++ -m32 -o output32 prog.cpp
您似乎在尝试使用特定于 MS Visual C++ 编译器的函数,该函数在 GCC 中不可用。请改用适当的 GCC builtin。
似乎 uint32_t __builtin_bswap32(uint32_t x)
适合这种情况。
另一个选择,如果你想要一个可移植的解决方案,将使用像 Boost Endian library.
这样的东西