c - C 头文件中的函数?
问题描述
我听说您将函数原型放在头文件中,然后将函数定义放在 .c 文件中。但是,这个 .c 文件是什么。例如,如果您要包含一个文件“foo.h”,您是否会调用上述.c 文件“foo.c”,将函数定义放入其中,将其放在与 foo.h 相同的位置,并且当您尝试包含 foo.h 时,该函数是否会从 c 文件中继承,并且该函数是否可以使用?
解决方案
不,只是将.c
with the.h
并包含在您的代码中并不会神奇地继承函数的定义。
您需要将其foo.c
单独编译成一个目标文件(在 Linux 的情况下,它是一个.o
文件)。例如使用命令 -
gcc -c foo.c -o foo.o
现在这foo.o
需要链接到您的实际程序。这可以通过在编译时简单地传递目标文件来完成
gcc test.c foo.o -o test.out
如果您不将foo.o
与您的程序链接,您的链接器将无法找到其中定义的函数的实现,并将引发链接器错误 -
对函数的未定义引用
foo_function
。
推荐阅读
- javascript - 如何使用 Angular 在 Firebase 中仅获取选定的数据列表
- gradle - Kotlin Gradle DSL cpp-library 源通配符
- javascript - JavaScript TypeError null on click 或 eventListener
- html - 带有 CSS 的无限气泡循环并设置 z-index
- python - 多处理一个简单的 Python foreach?
- telegram - 添加机器人以在电报频道中发布
- google-sheets - GOOGLE 数据分析课程中的 GOOGLE SHEET COUNTIF 解析错误
- flutter - 错误:主体可能正常完成,导致返回“null”,但返回类型可能是不可为空的类型
- c# - 在 Axis 网络摄像机上开始录制时设置录制配置文件
- c++ - GnuPlot 是否为每个输出提供终止字符选项?