草庐IT

c++ - C++ 中 'and' 、 'or' 等关键字的用途是什么?

以下关键字的用途是什么?andbitandcomplnot_eqor_eqxor_eqand_eqbitornotorxor如果它们都是直接等同于:&&&~!=|=^=&=|!||^ 最佳答案 http://en.wikipedia.org/wiki/Iso646.hiso646.h"...定义了一些宏,允许程序员使用C语言的按位和逻辑运算符,如果没有头文件,在某些国际和非QWERTY键盘上无法快速或轻松地键入这些宏键盘。文件名指的是ISO646标准,这是一个7位字符集,有许多区域变化,其中一些用重音字符代替C运算符使用的标点符号。

c++ - 'switch' 在 C/C++ 中有哪些有趣的用途?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭8年前。ImprovethisquestionC/C++中的switch语句有一个有趣的特性,即如果满足条件,将执行所有后续block例如,inta=2;intb=a;switch(b){case1:cout上面的代码将输出234除非我在情况2中放置一个break语句。在我的C/C++编程经验的3年(相当小,是的)中,我从未遇到过我必须使用switch而没有放置break语句的问题在每一个案例中。不过从这个特性卡了这么久的事实来看,或

c++ - C和C++中枚举的用途是什么

枚举是常量整数值的列表。它可以用来代替使用#define定义常量值。但除此之外,我还没有发现枚举在C和CPP中有任何实质性用途。谁能告诉我枚举的确切用途是什么。最初我认为如果我们创建一个枚举变量并分配一个不在枚举值中的值,编译器会大喊大叫。但事实并非如此。我们可以为枚举变量分配任何值。我想不出枚举的任何实质性用途。 最佳答案 枚举在编程中非常有用,因为它们使您的代码更具可读性和一致性。例如:假设我们有以下switch语句:switch(fruit){case1://codegoesherebreak;case2://codegoes

c++ - 指针中(星号)的确切用途是什么?

我是编程新手,我正在努力思考“指针”的概念。intmain(){intx=5;int*pointerToInteger=&x;cout为什么当我cout输出是一个十六进制值,但是当我使用cout时输出为5(x=5)。 最佳答案 *根据上下文有不同的含义。指针声明int*ap;//Itdefinesaptobeapointertoanint.voidfoo(int*p);//Declaresfunctionfoo.//fooexpectsapointertoanintasanargument.取消引用表达式中的指针。inti=0;in

c++ - C++ 中 ## 运算符的用途是什么,它叫什么?

我查看了DirectX2009年3月SDK附带的DXUTCore项目,注意到他们没有制作普通的访问器方法,而是使用宏来创建通用访问器,类似于以下内容:#defineGET_ACCESSOR(x,y)inlinexGet##y(){DXUTLockl;returnm_state.m_##y;};...GET_ACCESSOR(WCHAR*,WindowTitle);##运算符似乎只是将第二个参数的文本插入到宏中,以创建一个使用该文本对变量进行操作的函数。这是C++中的标准(即不是Microsoft特定的)吗?它的使用被认为是好的做法吗?而且,那个运算符叫什么?

c++ - gsl::multi_span 的用途是什么?

C++核心指南提到跨度,而不是“多跨度”。但是-我看到微软的GSL实现有一个multi_spanclasstemplateclassmulti_span{...};所以,显然这是某种多维版本的gsl::span。但那是什么意思呢?为什么我们需要这个多维跨度,或者更确切地说-我们什么时候使用它?我似乎找不到关于此的任何文档。 最佳答案 简而言之,它是一block连续的内存,代表多维数组。这是一个使用示例:intdata[6]={0,1,2,3,4,5};multi_spanspan{data,6};std::cout从链接源来看,它似

c++ - `qt_noop`的用途是什么

我刚刚发现qt_noop()的存在,在qglobal.h中定义为:inlinevoidqt_noop(){}这有什么意义? 最佳答案 “noop”名称是“nooperation”的缩写,意思是它是一个什么都不做的占位符函数。您可能还知道NOP,它存在于汇编语言中。我知道它在一些宏内部使用,这些宏应该只为调试构建做一些事情,例如:#ifndefQT_NO_DEBUG#defineQ_ASSERT(cond)((!(cond))?qt_assert(#cond,__FILE__,__LINE__):qt_noop())#else#def

c++ - 尾随返回类型中占位符类型的用途是什么?

根据[dcl.fct]/2下面的片段是合法的。GCCandclangcompileandexecutethecode,#includeinti=-1;autof()->auto&&{returni;}intmain(){f()=2;std::cout打印2但是在C++中允许这样做的目的是什么?在上面的示例中,只需将trailing-return-type替换为int&即可获得相同的结果。换句话说,我正在寻找一个示例,其中包含占位符类型的trailing-return-type是有意义的。 最佳答案 您可以就一致性提出争论:您可以将其

c++ - _p.h 文件的用途是什么?

在QtSource文件中,有两个版本的头文件,如:qxmlstream.hqxmlstream_p.h为什么会有_p.h文件? 最佳答案 它们通常是私有(private)头文件,用于使子系统的组件了解所有内容,但用户不需要。换句话说,如果Qt的用户不需要知道的话,Qt中的多个C源文件可能想知道的东西会在私有(private)头文件中。一个示例可能是为您的子系统定制的内存分配器。也许你知道你所做的每个内存分配都是128字节,那么你可以提供这样一个分配器:void*malloc128(void){...}由于这对您的子系统的用户来说可能

C++:独立引用的用途是什么?

在什么情况下你想定义对某block内存的引用?例如:constint&r=8;而不是简单地写:intr=8; 最佳答案 用较短的引用替换对对象的长表达式很有用,并使代码更具可读性。例如:constint&SphereRadius=Configuration::getInstance()->sphere->radius;只要配置同时发生变化(例如在另一个线程中),您的引用就会更新。您展示的代码只是一个更强大工具的简单可能性。在许多情况下,您的示例在您之前的理解中毫无意义。这些引用的主要目标是为对象添加别名。通过对函数的引用传递对象,并