Linux中,C语言头文件stdio.h的疑问

编译器和系统信息:gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04)

  • ISO C99 Standard: 7.19 Input/output */

#ifndef _STDIO_H
#define _STDIO_H 1

#define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION
#include

__BEGIN_DECLS

#define __need_size_t
#define __need_NULL
#include

#define need_va_list
#include

#include
#include
#include
#include
#include
#include

#ifdef __USE_GNU

include

#endif

这是stdio.h文件上部的内容。我有几个疑问:
1、如果#ifndef _STDIO_H和#endif是一个循环,那#ifdef __USE_GNU和#endif就不是一个循环了吗?(if……endif是一个循环)
2、#include ,尖括号<>里是文件名吗?文件存放在哪?

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^