请大家说说 结构体 是放在头文件中好? 还是放在源文件好呢?
在昨天, 我在网上看了一下关于C语言的模块化设计的一些文章,
现在, 就想问各位 你们的结构体的申明放在什么地方好, 好在什么地方,
我先来说说, 在头文件中放置 结构体的定义有什么缺点.
1. 在头文件放结构体的话, 会把整个结构体信息放在头文件中, 会把整个结构的信息暴露出来.这样不利于模块化.
呵呵, 不会吧,怎么我就说出了一点缺点..
如果放在源文件中, 这个缺点给补上了.
对这个结构体的使用, 可以完全的通过结构体所在模块提供一定的函数来操作....
但是我这样做遇到了一点问题, 不知道该怎么处理
下面是一个有问题的例子.
这个问题是在编译, 根本就通过不了, 请各位支支招.
现在, 就想问各位 你们的结构体的申明放在什么地方好, 好在什么地方,
我先来说说, 在头文件中放置 结构体的定义有什么缺点.
1. 在头文件放结构体的话, 会把整个结构体信息放在头文件中, 会把整个结构的信息暴露出来.这样不利于模块化.
呵呵, 不会吧,怎么我就说出了一点缺点..
如果放在源文件中, 这个缺点给补上了.
对这个结构体的使用, 可以完全的通过结构体所在模块提供一定的函数来操作....
但是我这样做遇到了一点问题, 不知道该怎么处理
下面是一个有问题的例子.
//filename :temp_main.c
#include "./temp.h"
int main(void ) {
struct temp a = creat_temp("wangxinglong", 12);
display(a);
return 1;
}
//filename: temp.c
#include <stdio.h>
#include "./temp.h"
struct temp {
char name[255];
int id;
};
int creat_temp(char *name, int id)
{
struct temp z;
sprintf(z.name, "%s", name);
z.id = id;
return 1;
}
int display(struct temp a)
{
printf("My name is: %s\n My id is: %d\n", a.name, a.id);
return 1;
}
//filename temp.h
#ifndef TEMP_H
#define TEMP_H
struct temp;
int creat_temp(char *name, int id);
int display(struct temp a);
#endif
这个问题是在编译, 根本就通过不了, 请各位支支招.
...全文
相关推荐
C++中头文件和源文件详细介绍
主要介绍了C++中头文件和源文件详细介绍的相关资料,需要的朋友可以参考下
C语言中,头文件和源文件的关系
通俗易懂的语言来解释C语言中,头文件和源文件的关系
C++中头文件与源文件的作用详解
主要给大家介绍了关于C++中头文件与源文件的作用的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用C++具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
内联函数体要放在头文件
内联函数体要放在头文件中。基本知识。需要的可以看。
C源文件包含自己的头文件好处
一般一个我们工程中一个c源文件要有一个对应的头文件。构成一个功能模块。包含一个头文件功能优点有如下 1、保持定义和声明的一致性 2、使得编译能进行引言: 我们经常在c工程中发现,源文件中要包含自己的头文件。一直以来,都不知道为什么这样做。以前的认知: 我认为,.c文件没有必要包含自己的.h文件。.h文件包含.c文件中对外提供定义的函数和全局变量的声明,.h文件就是.c文件提供的对外接口文


