C语言头文件中定义结构体的问题

编译通过编译报错:errorC2065:'STU':undeclaredidentifier未定义?头文件中定义了为什么没用……... 编译通过

编译报错:
error C2065: 'STU' : undeclared identifier
未定义? 头文件中定义了为什么没用……
展开
 我来答
kaixingui2012
推荐于2017-09-11 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6177万
展开全部

C语言程序设计中,为防止头文件在同一编译单元被重复引用,常引入#ifndef宏来进行保护,如:头文件my_head.h

#ifndef _MY_HEAD_H_             //如果没有定义宏_MY_HEAD_H_
#define _MY_HEAD_H_             //则,定义该宏名
//以下是被保护的代码区
//进行相应的全局变量和结构体类型定义
typedef struct stu {
    int a;
    int b;
} STU ;
#endif                        //宏判断结束

这样,当整个代码中,多次引用这个my_head.h时,只有一次是生效的,系统编译时,如果检查宏_MY_HEAD_H_ 已经定义,就不会再进入被保护的代码区了。

PS: 宏名,一般是与头文件名相同,只是把字母全大写,前后加上下划线(_)

小西
2018-06-25 · 运营
小西
运营
采纳数:218 获赞数:3887
百度知道热心用户

向TA提问 私信TA
展开全部
  头文件由三部分内容组成:
(1)头文件开头处的版权和版本声明。
(2)预处理块。
(3)函数和类结构声明等。
  它的作用:
  (1)通过头文件来调用库功能。
  (2)头文件能加强类型安全检查。
  用 #include <filename.h> 格式来引用标准库的头文件(编译器将从标准库目录开始搜索),到include子目录下搜索给出的文件,并把它嵌入到当前文件中 。
用 #include “filename.h” 格式来引用非标准库的头文件(编译器将从用户的工作目录开始搜索),在当前目录中进行搜索,如果找不到,再按标准方式进行搜索 ,这种方式适用于用户自己建立的头文件。
  需要对外公开的常量放在头文件中,不需要对外公开的常量放在定义文件的头部。为便于管理,可以把不同模块的常量集中存放在一个公共的头文件中
  
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Loylst
2013-04-03 · TA获得超过154个赞
知道小有建树答主
回答量:401
采纳率:0%
帮助的人:133万
展开全部
是ifndef把
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式