我正在尝试自学C编程,我在Windows XP下使用DevC ++作为我的IDE。我对调用自己的头文件的正确方法感到有些困惑。
我有一个名为main.c的主源文件和一个名为myFunctions.c的函数的单独文件,我在main.c中使用'include“myFunctions.h”包含所有函数原型驻留在此头文件中。
myFunctions.c包含两个名为showDate()的函数和一个名为showScreen()的函数,这两个函数都可以从main.c调用,并且很好。
当我试图从showScreen()中调用showDate()并且在编译/链接期间,我的问题就开始了,因为我没有在myFunctions.c中为showDate()创建原型。
我想知道的是我需要做以下哪些事情?
所有上述内容似乎都纠正了编译器错误,并允许我从main.c和myFunctions.c中调用函数bot,但我找不到确定来源的正确来源。
答案 0 :(得分:24)
在许多地方使用#1 - #include。
永远不要使用#2 - 永远不要声明任何内容。
很少使用#3 - 在.c文件中声明某些内容,就好像你永远不会重复使用它一样。
答案 1 :(得分:7)
头文件应包含原型。然后将其包含在使用原型的所有位置,包括包含函数定义的.c文件。
BTW DecC ++不再被积极开发 - 您应该考虑切换到Code::Blocks。
答案 2 :(得分:3)
绝对是第一个选择。
答案 3 :(得分:2)
您应该选择选项1.或者命令myfunctions.c,以便被调用函数的定义发生在调用它的函数之前。通过在文件中包含标头,您可以让编译器捕获声明和定义之间的任何不匹配。
答案 4 :(得分:1)
正如其他人已经说过的那样,你应该使用第一个选项。一般规则是,函数原型驻留在.h文件中,以及它们在.c文件中的实现。