现在还是人类 2023-08-02 06:49 采纳率: 100%
浏览 16
已结题

GCC 里的 IF 语句失效故障

这段时间写程序的时候发现 Linux 下 GCC 有一个问题,以下时简单代码测试

#include <iostream>
template<class Value>
void test(Value v){
    if(0){
        // 其实这里在正常情况下是不会触发下面语句的
        // 但是当输入整数编译时,编译就不通过了
        delete v;
    }
    printf("test\n");
}

int main(int arge,char *argv[])
{
    test("rr");            // 这样编译是没问题的
    // test(0);            // 单如果把参数换成整数,上面的 if 语句就失效了,会编译出错
    // 会提示:error: type ‘int’ argument given to ‘delete’, expected pointer
    return0;
}

有没有哪位知道这是什么问题?如何解决?

  • 写回答

6条回答 默认 最新

  • 现在还是人类 2023-08-02 09:11
    关注

    不会触发运行,但会触发编译哈

    我这只是举例,实际过程中不管你是判断的是什么都会被无视掉,即便是定量

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

问题事件

  • 系统已结题 8月17日
  • 已采纳回答 8月9日
  • 创建了问题 8月2日

悬赏问题

  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度