c++中函数只声明,不定义(不调用该函数)可以通过编译并运行
2018-03-19 09:14
483 查看
c++中函数只声明,不定义,代码中也没有该函数的调用,可以编译并运行(vs2015)。
结果是可以编译并运行:
在网上找了一些解释:
如果没有函数调用的话,编译器恐怕不会产生任何代码……
如果有调用的话,会产生调用函数的代码,至于函数的实现在哪里,那不是编译器要考虑的事,链接器才需要查找函数的实现代码并与函数调用代码对上…… https://zhidao.baidu.com/question/569604188.html
/* Author:gtkiller Date:2018/03/19 */ #include <iostream> #include <string> int Add(int a, int b) { return a + b; } int Sub(int a, int b); int main() { int a = 3, b = 5; int c = Add(a, b); std::cout << c << std::endl; system("pause"); return 0; }
结果是可以编译并运行:
在网上找了一些解释:
如果没有函数调用的话,编译器恐怕不会产生任何代码……
如果有调用的话,会产生调用函数的代码,至于函数的实现在哪里,那不是编译器要考虑的事,链接器才需要查找函数的实现代码并与函数调用代码对上…… https://zhidao.baidu.com/question/569604188.html
相关文章推荐
- C++第三周任务3请在原类基础上,增加成员函数,要求前三个设计成内置函数,在main()数中增加适当的调用以展示扩充类定义后的功能(最好能一次运行)。
- source insight3.0 c++脚本 通过函数声明 生成函数定义
- 在类中声明函数而不去定义编译通过
- C++函数不写bool返回值,居然编译运行全部通过,但判断结果就不对了
- C++关于函数声明和定义中参数赋值为0调用问题演示
- ios 中调用函数的方法是消息传递,这个和普通的函数调用的区别是,你可以随时对一个对象传递任何消息,而不需要在编译的时候声明这些方法。所以Objective-C可以在runtime的时候
- 在C++ 程序中调用被 C编译器编译后的函数,为什么要加 extern “C”声明?
- MFC 添加C++类,别的类不通过C++类的定义的对象就可以直接调用C++类里面的成员函数;
- 考试题:在C++ 程序中调用被 C 编译器编译后的函数,为什么要加 extern “C”声明
- Why? 在C++中调用被C编译后的函数,要在声明的前面加extern &quot;C&quot;
- 在C++ 程序中调用被 C编译器编译后的函数,为什么要加 extern “C”声明?
- Why? 在C++中调用被C编译后的函数,要在声明的前面加extern "C"
- 在C++ 程序中调用被 C编译器编译后的函数,为什么要加 extern “C”声明?
- 浅析C++中的this指针 通过空指针(NULL)可以正确调用一些类的成员函数?
- C++函数重载实现的原理以及为什么在C++中调用C语言编译的函数时要加上extern "C"声明
- 在C++ 程序中调用被 C编译器编译后的函数,为什么要加 extern “C”声明?
- c++中带返回值函数没写return能通过编译但运行时会出现奇怪问题
- 在C++ 程序中调用被 C编译器编译后的函数,为什么要加 extern “C”声明?
- 浅析C++中的this指针 通过空指针(NULL)可以正确调用一些类的成员函数?
- 在c++中,静态数据成员可以被非静态成员函数调用吗?如果可以调用的话那为什么还要定义静态成员函数呢