水木社区手机版
首页
|版面-C++程序设计语言(CPlusPlus)|
新版wap站已上线
返回
1/1
|
转到
主题:gcc这什么情况
9楼
|
z16166
|
2023-10-31 23:09:18
|
展开
一个模板函数就搞定的问题,并不蛋疼吧
严格的类型区分是好事,你这个个例不需要移植,但其他人可能有移植的要求,不按语言规范来,到时候出现各种shock
【 在 lwp 的大作中提到: 】
: 我想了下,指针cast好像也会有问题,比如重载了两个函数
: void f(long*)
: void f(long long*)
: ...................
--
FROM 221.218.160.*
11楼
|
z16166
|
2023-11-01 01:12:14
|
展开
我说的是如果编译器有"如果sizeof(unsigned long) == sizeof(unsigned long long),就自动把unsigned long *转为unsigned long long *"这个行为,影响代码移植,换个平台会导致代码可能完全无法编译。
而且C/C++规范里未必对编译器有这个自动cast的要求,那编译器为何要吃力不讨好呢,仅仅是为了满足某些小众需求?
C++也没限制说跨平台必须用stdint而不能用int/long/long long这些类型,那肯定有代码用了这些类型的,不能因为你没有跨平台用这些类型,就一定要编译器怎么样
【 在 lwp 的大作中提到: 】
: 用long和longlong的都没啥移植要求吧
: 有移植需求的不都是用stdint.h么
:
: ...................
--
修改:z16166 FROM 221.218.160.*
FROM 221.218.160.*
16楼
|
z16166
|
2023-11-01 10:47:08
|
展开
有固定长度的类型适合明确知道位宽的情况,但速度不一定快
正常还是和机器字长一样的类型速度快
【 在 hgoldfish 的大作中提到: 】
: 新的语言都在整型的名字加上位长度。看来 c/cpp 的这一套被证明不够好用。
:
--
FROM 221.218.160.*
18楼
|
z16166
|
2023-11-01 11:15:34
|
展开
历史包袱总归是有的。这跟牙膏厂的处理器还支持real mode、Windows还支持WoW32一个道理
你为啥用long long呢?
【 在 lwp 的大作中提到: 】
: 我就一直呼吁把unit8,16,32,64这种直接定义为关键字
: 正常人没几个会愿意用short long这玩意的吧
: :
--
修改:z16166 FROM 221.218.160.*
FROM 221.218.160.*
20楼
|
z16166
|
2023-11-01 11:32:24
|
展开
这种改变会break很多老代码,值不值得用一个std=XXX 去搞定
【 在 hgoldfish 的大作中提到: 】
: 那么可以弄个 int 类型,指向本机器效率最高的类型,同时最低不于低于 32 位。
: 不过我觉得随着时代的发展,其实也没啥必要,直接指定 int = int64 就完事了。
:
--
FROM 221.218.160.*
26楼
|
z16166
|
2023-11-01 22:06:08
|
展开
如果是问题,可以找对应的人沟通的吧,无法沟通的,抛出去让有权裁决的人拿主意
如果没有问题,那没啥好说的
【 在 lwp 的大作中提到: 】
: 不是我用,是其它部门给的库接口是Longlong
: 接口瞎jb写
:
: ...................
--
FROM 221.218.160.*
1/1
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版