为啥不包含头文件却可以调用函数,谁来解释
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥不包含头文件却可以调用函数,谁来解释相关的知识,希望对你有一定的参考价值。
我做了一个服务器程序,处理不同消息的函数分别写在多个文件里,我写了一个头文件定义了一些宏和结构体,没有函数声明,我在运行主程序却可以调用各个函数,后来修改中把一个函数的名字改了,就出现编译报错未定义该函数,谁来解释下怎么回事?
编译写在makefile里
对于没有声明的函数,被认为是返回int类型 参考技术A 这个编译没报错,估计是你那个函数没有使用到!没有使用到则不会去连接 参考技术B 在头文件里声明一下新的函数名试试吧追问
我想知道之前的不声明为什么都能用,那个函数名我改回去了还是可以用
追答或许是Makefile 里写了依赖关系什么的吧。。。
追问你的意思是只要Makefile里有依赖就可以不写头文件包含,可以直接调用了?
追答不知道。。。试试呗。。。
VS2017 包含了文件路径却还是找不到头文件(无法打开源文件“***.h”)
问题
最近在学习plog日志技术时,发现即使包含了头文件所在的路径,却还是无法引用头文件,一直报错如下截图:
再看看我是已经包含了头文件所在路径了的:
VC++目录 - 包含目录
C/C++ - 常规 - 附加包含目录
头文件所在
可以看出,确实是已经包含进来了的,但就是没法在代码中使用…
解决问题
如果是上述情况,那么很有可能是属性中设置的“配置”和“平台”,跟VS主界面设置的“解决方案”和“解决方案平台”不一致导致的。
如下图:
将他们设置为一样就可以了:
到此,问题完美解决!
以上是关于为啥不包含头文件却可以调用函数,谁来解释的主要内容,如果未能解决你的问题,请参考以下文章
为啥我可以在 C 中调用一个函数而不声明它,但在 C++ 中却不能?
一个c语言工程中可以有几个头文件,两个文件间函数调用其中之一要是头文件吗?
为啥js代码写在HTML文件里可以运行,写在js文件里被html文件调用之后却报错?