结构体写在头文件中怎么写,在其它函数文件中怎么引用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了结构体写在头文件中怎么写,在其它函数文件中怎么引用相关的知识,希望对你有一定的参考价值。
比如 我定义了一个头文件,里面是结构体
文件1.h
#include <stido.h> /*这句要写吗?*/
typedet struct student
int a;
int b;
struct student *next;
STU;
然后在另外一个程序中怎么使用这个文件
比如
function.c
#include <stdio.h>
#include "文件1.h"
STU *head,*p1;/*像这样使用好像不正确*/
.......... /*但是如何使用呢*/
但是STU 是struct student 的别名啊 看到typedef了吗 上面那个应该是 'f' 不是 't'
最下面的那个“冰冰” 那样好像不能引用啊 我在用的时候 出现了很多问题的
1、首先新建一个结构体作为参数项目,添加一个struct.c文件,如图所示。
2、包含stdio.h和stdlib.h头文件,如图所示。
3、输入main函数主体及返回值,如图所示。
4、定义一个结构体AAA,如图所示。
5、定义一个add函数,定义结构体,赋值,并且将结构体作为参数传递给add函数,如图所示。
6、最后运行程序,输出计算结果,如图所示就完成了。
参考技术A 既然函数在头文件中作了声明,一般是指全局函数,即其作用域是整个程序空间。若要在另一个头文件中引用该函数,可以通过以下两种方法实现:(1)使用#include "函数声明所在的头文件名.h"
(2)使用关键字extern 函数声明; 指明这是引用的外部函数。
例如 :函数void windows_display(windows_t window);声明在头文件wins.h中,若要在output.h中引用,则可以:
(1)#include "wins.h"
(2)在output.h中添加该语句extern void windows_display(windows_t window); 参考技术B 你这样用是没有问题的
只不过你把typedef给打错了
首"文件1.h中
#include<stdio,h>可写可不写 如果在头文件中没写那么在 .c 文件中必须要写
文件1.h
#include<stdio.h>
typedef struct student
int a;
int b;
struct student *next;
STU;
function.c
#include"1.h"
STU *head,*p1;
void main()
........
这样就没有问题了本回答被提问者和网友采纳 参考技术C 1.#include <stido.h> /*这句要写吗?*/
不要写,在.cpp里写了就行了;结构体定义应该是放在类外定义。
2.然后在另外一个程序中怎么使用这个文件
在.CPP文件中要用到的地方进行声明:
STU stu;
stu.a = ...;
stu.b = ...; 参考技术D student *head,*p1
你应该用结构名来定义对象。
STU只是student结构的一个对象,不能用来定义
不要在头文件中写函数定义
我们都知道static声明静态函数在别的文件是不可以使用的,但是如果你将定义也写在.h文件下是不是还是这样的呢,或者说编译器会不会提示你这样是有问题的呢?结果却是将static函数的定义直接写在了file.h的头文件中,导致staic关键字失效,代码如下。
//file1.h #include <iostream>
using namespace std; static void fun() { cout << "static fun" << ends; }
//main.cpp #include file1.h int main() { fun(); return 0; }
那么我们改下代码,就会提示编译错误,所以不要在头文件下定义,include会将它合并到main.cpp的前再编译的
//file1.h #include <iostream> using namespace std; static void fun();
//file1.cpp #include "file1.h" static void fun() { cout << "static fun." << endl; }
//main.cpp int main() { fun(); return 0; }
总结一下:说到头文件就一定会想到头文件的用法#include...,做c/c++编程的对#include指令都不会陌生,绝大多数人也都知道如何使用,但我相信仍有人对此是一知半解的,#include <stdio.h> #include <iostream>,这两行代码我们在c和c++程序第一行基本都会包含。包含指令不仅仅限于.h头文件,可以包含任何编译器能识别的C/C++代码文件,包括.c、.hpp、.cpp、.hxx、.cxx等,甚至.txt、.abc等等都可以。预处理器发现 #include 指令后,就会寻找指令后面<>或“”中的文件名,并把这个文件的内容包含到当前文件中。被包含文件中的文本将替换源代码文件中的#include 指令, 就像你把被包含文件中的全部内容键入到源文件中的这个位置一样。
以上是关于结构体写在头文件中怎么写,在其它函数文件中怎么引用的主要内容,如果未能解决你的问题,请参考以下文章