如何使用主C文件中第二个C文件中的功能?

时间:2019-07-17 17:24:50

标签: c function syntax header-files

我正试图拆分一个大的C文件,因为很难读取和跟踪正在做什么。我阅读了它,它应该很简单,即创建一个包含该函数的c文件,然后创建一个引用该函数的头文件,然后将该头文件包含在主c文件中并简单地使用该函数。但是,我已经做到了,并且我的代码中实际上并未调用有问题的函数。

我尝试将printf语句放置在函数中,以便可以查看它是否确实在被调用,并且这些不会在监视器中显示(我认为是未调用该函数)

//MAIN.c
#include "just_printf.h"

void app_main(){
    printf("attempting to call print\n");
    just_print();
}

//---------------------------------------
//JUST_PRINTF.h
#ifndef MAIN_JUST_PRINT_H_
#define MAIN_JUST_PRINT_H_

void just_print();

#endif

//---------------------------------------
//JUST_PRINTF.c
#include "just_printf.h"

void just_print(){
    printf("tried to prrint");
}

当我运行main.c时,它应该打印“试图调用print”,然后当它调用just_print()时,它应该打印“试图打印”。在我尝试将实际功能移出main.c文件之前,这只是一项健全性检查。我究竟做错了什么?我是否误解了如何分割c文件?现在,我得到的只是函数调用之前的第一个printf语句。

1 个答案:

答案 0 :(得分:2)

在main.c中,更改:

void app_main() {

收件人:

int main(void) {

然后像这样编译:

  

gcc main.c just_printf.c

,输出将是(执行a.out之后):

Georgioss-MBP:~ gsamaras$ ./a.out 
attempting to call print
tried to prrint

您应该收到有关函数printf的隐式声明的警告,因为您不包括stdio.h-在头文件中执行此操作,我建议这样:

#include <stdio.h>

建议:在头文件中,包含保护通常写为:

JUST_PRINT_H

即不带下划线和文件全名,以大写字母表示。