鱼C论坛

 找回密码
 立即注册
查看: 2290|回复: 6

[已解决]int128使用时的一些问题

[复制链接]
发表于 2023-2-15 21:16:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 myd0313 于 2023-5-20 14:03 编辑

本人代码:
#include <bits/stdc++.h>
#include <bits/extc++.h>
using namespace std;

__int128 a;

int main() {
    return 0;
} 
然后,报错了,报错内容是:
[Error] expected unqualified-id before '__int128'
其他信息:
语言标准:gnu c++20
编译器:MinGW gcc 9.2.0

真奇怪,这到底是哪里的问题

请不要回到原本的帖子,并且不要查看第 3 页的白字。
最佳答案
2023-2-16 10:29:40
myd0313 发表于 2023-2-16 07:17
如何查看target?怎样的target才能支持?如果我的不支持,那怎么解决呢?

试试
g++ -v
应该能看到一行类似 Target: x86_64-w64-mingw32 的输出
总体上似乎常见的32位架构都不支持 __int128,测试了 armv7/armv8, i686,而 aarch64(-linux-android) 和 x86_64(-linux-gnu/-w64-mingw32) 都通过了编译
可以试着重新配置编译器的 target 为能使用且机器支持的值

然而必须指出,<bits/stdc++.h> <bits/extc++.h> 之类的头文件都不属于 C++ 标准,__int128 的命名规则更表明它是一个内部符号名称,使用这些就必须做好它们在其他环境下可能不能编译/运行/正确运行的准备

评分

参与人数 1荣誉 +5 收起 理由
元豪 + 5 加油~

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-2-15 22:11:43 From FishC Mobile | 显示全部楼层
编译器的 target 是什么?target 没有支持就没有 128 位整数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-16 07:17:49 From FishC Mobile | 显示全部楼层
dolly_yos2 发表于 2023-2-15 22:11
编译器的 target 是什么?target 没有支持就没有 128 位整数

如何查看target?怎样的target才能支持?如果我的不支持,那怎么解决呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-2-16 10:29:40 | 显示全部楼层    本楼为最佳答案   
myd0313 发表于 2023-2-16 07:17
如何查看target?怎样的target才能支持?如果我的不支持,那怎么解决呢?

试试
g++ -v
应该能看到一行类似 Target: x86_64-w64-mingw32 的输出
总体上似乎常见的32位架构都不支持 __int128,测试了 armv7/armv8, i686,而 aarch64(-linux-android) 和 x86_64(-linux-gnu/-w64-mingw32) 都通过了编译
可以试着重新配置编译器的 target 为能使用且机器支持的值

然而必须指出,<bits/stdc++.h> <bits/extc++.h> 之类的头文件都不属于 C++ 标准,__int128 的命名规则更表明它是一个内部符号名称,使用这些就必须做好它们在其他环境下可能不能编译/运行/正确运行的准备

评分

参与人数 1荣誉 +1 鱼币 +1 收起 理由
琅琊王朝 + 1 + 1 鱼C有你更精彩 ^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-16 11:48:14 | 显示全部楼层
dolly_yos2 发表于 2023-2-16 10:29
试试应该能看到一行类似 Target: x86_64-w64-mingw32 的输出
总体上似乎常见的32位架构都不支持 __int12 ...

明白了,也许是软件问题吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-16 11:49:36 | 显示全部楼层
dolly_yos2 发表于 2023-2-16 10:29
试试应该能看到一行类似 Target: x86_64-w64-mingw32 的输出
总体上似乎常见的32位架构都不支持 __int12 ...
C:\Users\*******>g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=e:/dev-cpp/mingw32/bin/../libexec/gcc/mingw32/9.2.0/lto-wrapper.exe
Target: mingw32
Configured with: ../src/gcc-9.2.0/configure --build=x86_64-pc-linux-gnu --host=mingw32 --target=mingw32 --disable-win32-registry --with-arch=i586 --with-tune=generic --enable-static --enable-shared --enable-threads --enable-languages=c,c++,objc,obj-c++,fortran,ada --with-dwarf2 --disable-sjlj-exceptions --enable-version-specific-runtime-libs --enable-libgomp --disable-libvtv --with-libiconv-prefix=/mingw --with-libintl-prefix=/mingw --enable-libstdcxx-debug --disable-build-format-warnings --prefix=/mingw --with-gmp=/mingw --with-mpfr=/mingw --with-mpc=/mingw --with-isl=/mingw --enable-nls --with-pkgversion='MinGW.org GCC Build-2'
Thread model: win32
gcc version 9.2.0 (MinGW.org GCC Build-2)
中间的 Target: mingw32 也就说明这是 32 位对吧,32位 也就不支持 int128 对吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-2-16 13:38:55 | 显示全部楼层
myd0313 发表于 2023-2-16 11:49
中间的 Target: mingw32 也就说明这是 32 位对吧,32位 也就不支持 int128 对吧

似乎是这样的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-17 19:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表