【发布时间】:2010-11-02 14:18:06
【问题描述】:
我已经用 Google 搜索并阅读过,但没有找到这三个简单问题的答案...
头文件名应该等于代码文件名吗? 例如,我在 foo.h 中声明了函数 void foo()。在包含 foo.h 的 main.c 中使用 foo() 必须在 foo.c 中实现吗?如果它在 foox.c 中实现呢?因为我有一个具有 decoder.h 标头但 decode.c 代码文件的源代码,并且一切似乎都可以正常工作。项目中没有decoder.c 和decode.h 文件。
当函数用“extern”声明时,“extern”是什么意思。 在上述项目中,decoder.h 声明了 extern 函数,而 decode.c 实现了它们。 extern 在这里如何工作以及它实际上应该如何工作?我一直认为 extern 用于让编译器知道它会在其他地方找到它(就像我在 main.c 中声明一个变量,其中包括 foo.h,在 foo.c 中实现来自 foo.h 的函数我想改变它变量的值,所以我将其声明为外部)。
-
另外,关于 C 语法的小问题,我有一个代码,其函数实现看起来像这样
int function(param1,param2,param3) int param1,*param2; char param3; { function body }我的 Qt Creator 抱怨此代码和代码导航不起作用,但代码编译和执行良好。这是什么语法?以前没见过……
【问题讨论】:
-
请使用稍微现代一点的 C。而 Qt Creator 是 C++。
-
对于第二季度,请参阅SO 1433204 - 可能是许多类似问题和答案之一。
-
好吧,Qt Creator 是 C++,但我必须使用 C 代码。当我有很多空闲工作时间时,我可能会将整个代码重写为 C++ 代码,但到目前为止 Qt Creator 为我编译 C 代码以及 C++ 代码。 3) 语法是唯一不能正确处理的东西
标签: c