黑马程序员技术交流社区

标题: 关于.h文件的问题 [打印本页]

作者: fangdanjames    时间: 2014-10-6 17:58
标题: 关于.h文件的问题
比如有一个123.c文件和一个333.h文件,但是比如说123.c是一个算数程序例如

include <stdio.h>
include "333.h"
int main()
{
int a=9,b=10;
int c = sum(a,b);
printf("%d\n",c);
}

这是.h文件的内容

int sum (int a,int b)
{
return a+b;
}
这样写可不可以呢?
作者: 魔法少年十三    时间: 2014-10-6 18:23
一般来说.h里面放的是声明,不过你这样写也许有的编译器支持,但是肯定不规范
作者: lyan    时间: 2014-10-6 18:35
不可以,单单看着两个文件,觉得可以运行,认为是正确的,但里面存在很大风险。
一、不符合编程规范,.h文件存放函数声明,你将函数体放入.h中,多次#include会再链接过程中报错。

二、#include的作用是将被引入的文件内容拷贝到该文件中,本来.h中应该写函数声明,你多个文件同时引用该文件,拷贝的也只是声明,当你将函数体写入.h文件时,若多个文件同时引用,就会出现多个sum文件,默认的函数是外部函数,外部函数的意思就是整个项目中只能有一个同名函数,链接过程会报错。
作者: fangdanjames    时间: 2014-10-7 02:07
长知识了,原来是这样。
作者: 明天过后1    时间: 2014-10-7 09:21
可以啊,但不建议而已
作者: fangdanjames    时间: 2014-10-7 23:11
原来是规范不标准呢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2