鱼C论坛

 找回密码
 立即注册
查看: 184|回复: 5

[作品展示] 为什么代码总有Bug?不是Bug,是未定义行为!

[复制链接]
发表于 2025-3-31 16:00:00 | 显示全部楼层 |阅读模式

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

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

x
1faeacc6d9bb02438cdaadf71abd8b9da35557c0.jpg@308w_174h.jpeg

编写代码是一项高度复杂的脑力活动,就像写作、设计建筑或创作音乐一样,存在大量的不确定性和变量。

在线感受:



即便是经验丰富的程序员,也难以预见到所有可能的使用场景和边界情况。程序的复杂度越高,模块之间的依赖关系就越复杂,一个小小的改动就可能引发连锁反应。

而且,人的思维常常受到主观预期的影响——
游客,如果您要查看本帖隐藏内容请回复


此外,软件开发中的时间压力、需求变更频繁以及团队沟通不畅,也容易让 Bug 溜进系统。

正因为如此,Bug 几乎是软件开发中不可避免的一部分,而调试和持续测试也就成为开发流程中至关重要的环节。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 前天 10:37 | 显示全部楼层
太形象了,你怎么设计不重要,就问你用户使用的角度叼不叼转,跟我开发设备一样一样的啊。明明告诉他们怎么用了,明天去现场看,他们开发了一种新玩法。使用人就是专门卡你bug的那个人。

评分

参与人数 1鱼币 +6 C币 +1 收起 理由
不二如是 + 6 + 1 鱼C有你更精彩^_^

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-4-1 10:52:41 | 显示全部楼层
对头啊!



小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-4-2 20:32:20 | 显示全部楼层
为什么代码总有Bug?这是程序员永恒的哲学命题

不是Bug,是未定义行为!


  • 复杂度诅咒:当代码量超过人脑短期记忆极限(约7±2个模块),开发者就容易遗漏边界条件。比如:
    1. int a = INT_MAX;
    2. printf("%d", a + 1); // 你的"正常操作"实则是未定义行为
    复制代码

  • 薛定谔的预期:开发者常陷入"在我的环境里能跑就行"的陷阱。比如用npm install装依赖时,^1.2.3的语义化版本可能在不同时间点安装不同版本
  • 海森堡效应:调试行为本身会改变系统状态(如断点影响多线程时序/监控系统消耗资源)
  • 墨菲定律具象化:用户总会以你意想不到的方式使用产品。比如:
    1. while(true) {
    2.     System.out.println("我永不崩溃");
    3. } // 直到用户把输出重定向到FIFO管道
    复制代码



推荐观看视频解说:
https://www.bilibili.com/video/BV1XhZBYEEp3

终极建议: 把每个warning当error处理,用valgrind/sanitizers等工具检测未定义行为,记住——计算机永远不会错,它只是在忠实地执行你的错误指令[/i]

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 5 天前 | 显示全部楼层
笑发财了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 前天 11:06 | 显示全部楼层
言清第一 发表于 2025-5-8 10:37
太形象了,你怎么设计不重要,就问你用户使用的角度叼不叼转,跟我开发设备一样一样的啊。明明告诉他们怎么 ...

说得好!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-10 02:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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