- (if (= tc 1)
- `(tcc_tc)
- )
- 原来期望 tc等于1时才执行(tcc_tc) 知己上我不知道怎么加了个' 执行起来发现逻辑反了。当tc不等于1的时候执行了(tcc_tc) 反而当tc等于1的时候却不执行(tcc_tc)
- 当添加了测试语句反而正常了
- (if (= tc 1)
- (progn
- `(tcc_tc) ; 这里有引号
- (princ "\n条件为真,进入if分支")
- )
- (princ "\n条件为假,跳过if分支")
- )
- 这是怎么回事啊什么原因
- 求大佬帮忙解惑 我刚开始学习
`
(tcc_tc)
) 估计是 ` 被当作一个语句了 其执行结果是nil 网友答:

- ;; 假设这是你的函数定义
- (defun tcc_tc ()
- (princ "\ntcc_tc 函数被执行了!")
- "tcc_tc返回值"
- )
- ;; 测试变量
- (setq tc 1)
- ;; ❌ 错误写法 - 有反引号
- (princ "\n测试1 (错误):")
- (if (= tc 1)
- `(tcc_tc) ; 只返回列表,不执行
- )
- ;; ✅ 正确写法 - 无反引号
- (princ "\n\n测试2 (正确):")
- (if (= tc 1)
- (tcc_tc) ; 真正执行函数
- )
- ;; ✅ 带调试信息的完整版本
- (princ "\n\n测试3 (完整版):")
- (if (= tc 1)
- (progn
- (princ "\n条件为真 (tc = 1)")
- (tcc_tc)
- (princ "\n执行完成")
- )
- (progn
- (princ "\n条件为假 (tc ≠ 1)")
- (princ "\n跳过执行")
- )
- )