cuốn sách gpt4 ai đã làm

c++ - #ifndef 如何处理全局声明的变量和我自己的变量?

In lại Tác giả: Walker 123 更新时间:2023-11-28 02:52:29 26 4
mua khóa gpt4 Nike

有个问题让我百思不得其解。我知道这样做是不对的,但我不知道为什么。 #ifndef#define #endif 是如何工作的。编译器如何处理像下面的“a”和“b”这样的变量;

代码很简单:(myh.h):

#ifndef P_H
#define P_H
struct P{
int một;
};
int b;
#endif

另一个文件s.cpp

#include"myh.h"
P a1;

main.cpp:

#include
#include"myh.h"
sử dụng không gian tên std;

int chính()
{
P a2;
trả về 0;

}

错误是b的多重定义;正如我所知。我有两个问题:1.正如有些书所说,如果您使用#ifndef,编译器将不会包含它两次,那么为什么“b”似乎包含两次。

  1. “a”、“b”和“P”的区别是什么?为什么“a”和“P”毫无疑问。我不知道将“P”视为与“b”同级别的变量是否正确?或者“P”只是类型的定义。

如果是局部和全局的区别,为什么“P”是对的?

我真的很疑惑。请原谅你的时间来帮助我。谢谢。

26 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress