You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在C++中仅声明未实现且未调用的函数是否合法?

在C++中仅声明未实现且未被调用的函数是否合法?

这种情况是完全合法的。

C++标准允许仅声明函数而不提供对应的实现,只要该函数在整个程序中从未被调用(包括显式调用、隐式调用,比如作为虚函数被实例化调用等场景)。在测试代码里,unused函数只有声明没有定义,但因为它没有被任何代码调用,编译器不会生成对它的引用,链接器也就不需要去寻找它的实现,因此整个程序可以正常编译、链接并运行。

反过来,如果这个仅声明的函数被调用了,链接器就会抛出“未定义引用”的错误,因为无法找到对应的函数实现——只有当函数被实际使用时,链接器才会要求该函数必须存在定义。

测试代码如下:

#include <iostream>

int foo(int(a)){
    std::cout << a << std::endl;
    return a;
};

int unused(int(a));

int main()
{
    foo(1);

    return 1;
}

内容的提问来源于stack exchange,提问作者John

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 23:53:11