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

C语言头文件中定义结构体的问题,第1张

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: 宏名,一般是与头文件名相同,只是把字母全大写,前后加上下划线(_)

#ifndef _INC_STRING #define _INC_STRING 然后是声明一类的东西。 最后是 #endif /* _INC_STDIO */ 这里结束_INC_STRING,这样的作用就是防止重复包含同一个头文件,当编译器发现_INC_STRING未被定义,就会执行中间的部分,当_INC_STRING已经被定义,中间那部分就不会执行了。 你的头文件可以这样: #ifndef _DEFINE #define _DEFINE struct book { char bkname[20] int num float price char author[20] char state char borrower[20] char sex int stunum struct book *next }typedef struct book BOOK#endif 这样就可以防止头文件被重复包含。

#include<stdio.h>

struct name{

int a

float b

int *p

char[20]

}

main()

{

int a,b

struct name x

x.a=12 /*对结构体进行引用*/

x.char[0]='a'

……

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/11453485.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存