9

我想在头文件中声明一个结构,以便可以在源文件中使用它。我究竟做错了什么?我希望能够从任何函数访问我的结构。

信息.h

#ifndef INFO_H
#define INFO_H

typedef struct info
{
   int mem_size;
   int start_loc;
   int used_space;
   int free_space;
} INFO;
#endif

测试.c

#include <stdio.h>
#include <stdlib.h>
#include <info.h>

#define F_first 1
#define F_last 2
#define F_data_int 3
#define F_data_char 4
#define F_data_float 5
#define F_print 6

void * f(int code);

int main() {

INFO in;
in.mem_size = 8;
f(F_last, 0,0);
return(0);
}

void * f(int code) {
printf("%d", in.mem_size);
}
4

2 回答 2

9

代替:

#include <info.h>

和,

#include "info.h"

使用<>编译器仅在预先指定的头文件夹中搜索头文件。这用于标准库头文件。
编译器首先在"".c 文件所在的本地目录中搜索头文件。这用于用户定义的头文件。

于 2013-02-05T03:13:27.567 回答
1

是的...您必须使用#include "info.h"而不是#include <info.h">基于自定义的标题。通常它们不是系统分支的一部分,系统分支通常位于/usr/includeUnix/Linux 平台上的目录中。

于 2013-02-05T05:01:58.640 回答