A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© fangdanjames 中级黑马   /  2014-10-6 17:58  /  1148 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

比如有一个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;
}
这样写可不可以呢?

5 个回复

倒序浏览
魔法少年十三 来自手机 中级黑马 2014-10-6 18:23:45
沙发
一般来说.h里面放的是声明,不过你这样写也许有的编译器支持,但是肯定不规范
回复 使用道具 举报
不可以,单单看着两个文件,觉得可以运行,认为是正确的,但里面存在很大风险。
一、不符合编程规范,.h文件存放函数声明,你将函数体放入.h中,多次#include会再链接过程中报错。

二、#include的作用是将被引入的文件内容拷贝到该文件中,本来.h中应该写函数声明,你多个文件同时引用该文件,拷贝的也只是声明,当你将函数体写入.h文件时,若多个文件同时引用,就会出现多个sum文件,默认的函数是外部函数,外部函数的意思就是整个项目中只能有一个同名函数,链接过程会报错。
回复 使用道具 举报
长知识了,原来是这样。
回复 使用道具 举报
可以啊,但不建议而已
回复 使用道具 举报
原来是规范不标准呢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马