请问C++ 中定义范围最大的 是啥 ???

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问C++ 中定义范围最大的 是啥 ???相关的知识,希望对你有一定的参考价值。

参考技术A double

unsigned long long
参考技术B 不懂你的意思 参考技术C long long追问

那那个 long double 是 什么 啊

追答

那个是浮点型的超长类型
而long long是整型的超长类型

本回答被提问者采纳

c++ 中预编译器定义的范围是啥?

【中文标题】c++ 中预编译器定义的范围是啥?【英文标题】:What is the scope of pre-compiler define in c++?c++ 中预编译器定义的范围是什么? 【发布时间】:2016-02-03 03:19:55 【问题描述】:

预编译器的范围是否定义了它定义的文件? 例如:

三个文件:

test1.hpp/test1.cpp test2.hpp/test2.cpp test3.hpp/test3.cpp

test1.cpp 内的一个:

#ifndef test1_hpp
#define test1_hpp

// some declarations

#endif 

test2.hpptest.hpp 都是 #include test1.hpp。如果 test1_hpp 的范围是整个应用程序,据我了解,只有一个包含 test1.hpp 成功。因为一旦包含,test1_hpp 就被定义了。

【问题讨论】:

"独家新闻" => "范围"?另外,请确保将代码标记为代码(缩进 4 个空格)。 请给出一个具体的例子来说明你所说的那种变量。 An within test1.cpp: 你的意思是test1.**hpp* 【参考方案1】:

test2.hpp 和 test.hpp 都#include test1.hpp。如果 test1_hpp 的范围是整个应用程序,据我了解,只有一个包含 test1.hpp 成功。因为一旦包含,test1_hpp 就被定义了。

编译器适用于翻译单元(想想:单个 .cpp 文件)而不是整个应用程序(想想:可执行文件)。您所说的“预编译器定义的范围”就是当前的翻译单元。在您的示例中,test1.hpp 中的 // some declarations 部分将在直接或间接包括 test1.hpp 的每个 CPP 中可见/处理,即在所有 test1.cpp(直接)、test2.cpptest3.cpp 中(间接地,通过both #include test1.hpp)。

#ifndef test1_hpp 是一种常见的习惯用法,用于防止在同一翻译单元中多次无意中包含相同的头文件 - 参见例如"Use of #include guards" on Wikipedia。

【讨论】:

对不起。我不明白。 c++ 保留标头保护预编译的目的是避免再次添加声明。我对这种情况没有任何疑问。另一个问题是两个不同的文件都包含一个标题一次,如果#define定义的变量具有全局范围,代码将不会在另一个文件上执行,因为变量已经定义。实际结果是我可以在两个文件中使用,但我不知道这是怎么发生的。 @malin.llvision It is the other secene that two different file both include one header once,If the variable 抱歉,不确定您的意思。编译 file1.cpp 时的宏 #define'd 对 file2.cpp 的编译没有任何影响。【参考方案2】:

你的假设是正确的。如果您在标头中使用#ifndef 保护,那么在预处理器第一次将 test1.hpp 包含在您的应用程序中时,test1_hpp 将被定义并允许将代码包含在您的标头中。将来包含 test1.hpp,由于有保护,代码不会被重新包含。

这在很大程度上是为了防止在项目的多个文件中包含标头时出现双重定义,并遵守one definition rule。

【讨论】:

首先,非常感谢。如果第二次#Include "test1.hpp" 不执行,其他人是怎么得到接口的?

以上是关于请问C++ 中定义范围最大的 是啥 ???的主要内容,如果未能解决你的问题,请参考以下文章

java中float和double的取值范围是啥?

在c++中窗口最大化、最小化、关闭的程序代码是啥?

C语言数值范围最大的数据类型(即能输出最大值)是啥?还有怎么用printf函数表示?

请问java中的基本数据类型中的字节型( byte ) 是啥概念,请列举几个byte型的常量,谢!

C++ 中命名空间别名的范围是啥?

c++ 宏重定义的范围是啥?