gpt4 book ai didi

c - 包含c文件和在C中作为参数给出有什么区别?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:56:24 26 4
gpt4 key购买 nike

我有 2 个 c 文件。首先是 main.c

#include <stdio.h>
//#include "file.c"

int main(int argc, char const *argv[])
{
fonk0(5);
fonk1();
return 0;
}

第二个是file.c

#include <stdio.h>
int aa;
void fonk0(int a)
{
aa=a;
}

void fonk1()
{
printf("aa is : %d \n", aa);
}

当我编译这些文件时,我使用这个命令:

gcc -Wall main.c file.c -o main1

它给出警告

main.c: In function ‘main’:
main.c:7:2: warning: implicit declaration of function ‘fonk0’ [-Wimplicit-function-declaration]
fonk0(5);
^
main.c:8:2: warning: implicit declaration of function ‘fonk1’ [-Wimplicit-function-declaration]
fonk1();
^

main1文件是7104字节。

之后,我将 #include "file.c" 行添加到 main.c 并使用此命令再次编译它

gcc -Wall main.c -o main2

它没有给出警告

main2文件是7072字节。

main1main2 工作正常。那么这些方式有什么区别呢?为什么 main1main2 的文件大小不同?我应该使用哪种方式?

我使用的是 debian 8.5gcc 4.9.2

谢谢。

最佳答案

您收到警告是因为 main 中的代码没有可见的函数声明。您需要创建一个包含函数原型(prototype)的头文件“file.h”,然后从 main.c 和 file.c 中包含该头文件。

从不 #include .c 文件。它从来没有意义,这样做的需要总是源于糟糕的程序设计。

关于c - 包含c文件和在C中作为参数给出有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38990941/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com