- 主题:c++太垃圾
undefined behavior
【 在 mrunmatched 的大作中提到: 】
: ub是啥意思?
: 发自「今日水木 on HMA-AL00」
--
FROM 42.3.19.*
C99的术语是Flexible array member,而且写法是char x[],中括号里不能有东西。
https://developers.redhat.com/articles/2022/09/29/benefits-limitations-flexible-array-members#flexible_array_members_vs__pointer_implementation
【 在 easior 的大作中提到: 】
: 记得原先这个是 GNU C 的扩展!
: 变长数组应该不是标准 C 吧?
--
FROM 222.131.205.*
没看明白。constexpr void *咋搞?
【 在 ziqin 的大作中提到: 】
: 其实就是一个地址常量吧
: 现在可以用constexpr void* 代替了吧,更直观一些
:
--
FROM 222.131.205.*
我也觉得不值得
喜欢玩奇技淫巧的多,但玩垮的更多,自己挖坑,后面维护也困难,多写几行代码的事,非要遮掩起来挖坑。。。
【 在 mrunmatched 的大作中提到: 】
: 为了这些根本不值得,内存错误会导致很多随机错误,需要浪费很多人力时间去测试,找bug。要是火箭汽车控制之类的,因为这种问题出bug,损失太大了
: 发自「今日水木 on HMA-AL00」
--
FROM 116.235.133.*
和专业扯不上边,你说的这些大家都知道。现在已经有很多更安全的编程语言了,只不过现有c和c++代码太多,逐步取代还需要时间
【 在 mopo 的大作中提到: 】
:
: 简单理由就是:爱用不用
: 复杂一点:c++要兼容c风格代码,所以这个不可以直接报错,否则一堆旧有库都歇菜了
:
: 如果要组内强制禁止使用,打开warning视为error开关即可,或者更直接一点code review发现谁这么干就扣绩效
: 非要在这个地方和语言特性较劲,
: ..................
发自「今日水木 on HMA-AL00」
--
FROM 223.72.88.*
另外爱用不用的态度太傲慢了,不是做好事情该有的态度
【 在 mopo 的大作中提到: 】
:
: 简单理由就是:爱用不用
: 复杂一点:c++要兼容c风格代码,所以这个不可以直接报错,否则一堆旧有库都歇菜了
:
: 如果要组内强制禁止使用,打开warning视为error开关即可,或者更直接一点code review发现谁这么干就扣绩效
: 非要在这个地方和语言特性较劲,
: ..................
发自「今日水木 on HMA-AL00」
--
FROM 223.72.88.*
嗯,程序出现未定义行为太吓人了,这种bug神出鬼没,特别难追踪
【 在 HerSMTH 的大作中提到: 】
:
: undefined behavior
: --
:
发自「今日水木 on HMA-AL00」
--
FROM 223.72.88.*
是啊,就这样还有很多自以为很懂c++的人傲慢的觉得语言设计没问题,是程序员不会用,把责任全推给程序员。
【 在 ztysys 的大作中提到: 】
:
: 我也觉得不值得
:
: 喜欢玩奇技淫巧的多,但玩垮的更多,自己挖坑,后面维护也困难,多写几行代码的事,非要遮掩起来挖坑。。。
: --
:
发自「今日水木 on HMA-AL00」
--
FROM 223.72.88.*
楼主的问题在于C++并不认为它是个缺陷
这玩意我在底层数据设计里还是常用的
比如根据模型,存储的数据可能是double [2],或者4,或者8
我又想一个类全封装,又不能浪费空间
这种变长设计就是利器
【 在 mrunmatched 的大作中提到: 】
: 我承认这方面不好改正,因为太多现有代码的维护,历史包袱太重,这都是一开始设计犯下错误的代价。但不能因为不好改而不承认它的缺陷
: 发自「今日水木 on HMA-AL00」
--
FROM 111.197.233.209
char[0]这样的程序就编不过去了
【 在 mrunmatched 的大作中提到: 】
: 我知道可以选,但是为什么不强制呢?非要留个口子,什么考虑?
: 发自「今日水木 on HMA-AL00」
--
FROM 221.223.196.*