- 主题:c++果然是门邪恶的语言!!
【 在 z16166 的大作中提到: 】
: 那还是人的问题,哈哈
: 你可以把关键数组/类的operator[]重载一下,加上越界判断
:
跟语言也有关啊, 如果用java定位就不会那么痛苦了. 几行代码踩两个坑
--
FROM 183.195.5.*
有些语言无论如何都帮你检查下标是否越界,付出了一定的性能开销。
c/c++给了你自由度,要性能并且保证不会越界的地方可以不检查,要安全就检查,决定权在码农手里。
如果你用汇编,自由度会更大,是不是也要骂cpu邪恶啊,居然可以让写汇编的人天马行空随便jump/call、随便cast
【 在 stub 的大作中提到: 】
: 跟语言也有关啊, 如果用java定位就不会那么痛苦了. 几行代码踩两个坑
--
修改:z16166 FROM 222.129.205.*
FROM 222.129.205.*
【 在 z16166 的大作中提到: 】
: 有些语言无论如何都帮你检查下标是否越界,付出了一定的性能开销。
: c/c++给了你自由度,要性能并且保证不会越界的地方可以不检查,要安全就检查,决定权在码农手里。
:
这倒是,不过门槛也确实提高了不少
--
FROM 183.195.5.*
python写习惯了吧……
--
FROM 183.179.53.*
python用多 的人
【 在 z16166 的大作中提到: 】
: 邪恶的是人吧
: 正常谁会写个负的下标。虽然能编译过去。
--
FROM 123.112.68.*
C++ 在语法细节上是使了劲的做啊...
【 在 stub 的大作中提到: 】
: [upload=1][/upload][upload=2][/upload]
--
FROM 52.9.227.*
如果是字节数组没问题,其他的情况下没有强制转换的话,算一下 a+size(a[0])*1和1+a,一样吗?
设a数组为int,a地址为0,a[1]地址为4,1[a]地址为1+0=1。手算不一定对,可以用程序跑一下看一下
【 在 jjfz 的大作中提到: 】
: 理解数组只是地址偏移就行,a[1] 写成 1[a]都可以的
:
--
修改:god4 FROM 221.218.138.*
FROM 221.218.138.*
vector 不是有at()检查越界的吗,语言给了你选择权,你不用非要[]又赖语言,这种还是人的事吧。
【 在 stub 的大作中提到: 】
: 这倒是,不过门槛也确实提高了不少
--
FROM 111.199.190.*
p+1可不是只加一个byte
【 在 god4 的大作中提到: 】
: 如果是字节数组没问题,其他的情况下没有强制转换的话,算一下 a+size(a[0])*1和1+a,一样吗?
: 设a数组为int,a地址为0,a[1]地址为4,1[a]地址为1+0=1。手算不一定对,可以用程序跑一下看一下
:
--
FROM 111.199.190.*
?啥个明说能这
【 在 stub 的大作中提到: 】
: [upload=1][/upload][upload=2][/upload]
--
FROM 112.9.184.*