C语言头文件中的这个定义是什么意思?

有一个名为shorten.h的头文件(头文件名均为小写),开始的几行是这样的,请问这是什么意思
#ifndef SHORTEN_H_
#define SHORTEN_H_

#endif /*SHORTEN_H_*/

这里为什么要用下划线"_"和大写?小写可以吗?
另外,有见到头文件是这样定义的(比如就以此文件为例)
#ifndef _SHORTEN_H_
#define _SHORTEN_H_

#endif /*_SHORTEN_H_*/
在SHORTEN_H的前面加上下划线,又表示什么意思呢?

谢谢!!!!!

编译预处理,防止重复include导致的重定义什么的
符号随自己设定,只要不和库的标准符号冲突即可
大小写都可以,但是规范一点比较好,代码阅读起来也比较舒适
下划线可加可不加,看自己喜欢那种风格,自己喜欢怎么写
毕竟只是一个宏定义,防止头文件被重复包含
顺便说下,这组预处理可用 #pragma once 代替,写于文件开头即可
温馨提示:答案为网友推荐,仅供参考
相似回答