C语言怎样才能在头文件中实现函数定义?

C语言怎样才能在头文件中实现函数定义?,第1张

C语言在头文件中实现函数定义,可以按如下方法:

新建一个demo.h(也可以为其它文件名)的头文件,在头文件中添加函数定义,如:extern void demo()

新建一个c文件,在文件中将demo.h包含进来:#include“demo.h”,在此文件中将函数的主体写上,如下:

void demo()

{

  printf("Hello.")

     }

经过上述步骤,即可完成在头文件中实现函数定义。

声明和定义的区别

声明(declare)做的事情是,告诉编译器有这么个 符号(函数/变量) 存在,让编译器允许后面的代码使用这个符号。

定义(define) 做的事情是,为这个 符号(函数/变量) 分配内存空间/获取其地址,让编译器知道去哪里找这个符号。

2. 为什么要把声明写在头文件中?

为了方便。

这个问题比较好理解。符号的声明并不是必须写在头文件中,写在源文件中也没问题,只要写在使用这个符号之前就行。

为什么把定义写在源文件中?

定义 不能写在头文件中,写在头文件中会出问题(static定义 除外)

如果头文件中有符号(函数/变量)的定义,当这个头文件被多个源文件include时,相当于每个源文件中都定义了同一个符号(函数/变量),这样是不合法的,编译器会报错 duplicate symbol. 符号(函数/变量)可以被多次声明,但不能被多次定义,因为定义会分配内存空间 &&确定符号的地址。

需要特殊说明的是,static类型的符号(函数/变量)定义在源文件中编译器不会报错,因为static意味着符号只会在单个编译单元中可见,因此多个源文件之间不会出现 duplicate symbol 的问题。

综上,最佳实践是:将声明写在头文件中,将定义写在源文件中。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/tougao/11996801.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-20
下一篇2023-05-20

发表评论

登录后才能评论

评论列表(0条)

    保存