草庐IT

define-ing

全部标签

c++ - 是否可以为某个表达式#define 两个单词,而不仅仅是一个单词?

如果我想用unsignedchar替换所有出现的byte,一个简单的#define就可以了。有没有办法用#define做相反的事情?用单引号或双引号对两个单词进行分组是行不通的,也不用反斜杠转义它们之间的空格。有没有可能? 最佳答案 #define语句中的标识符不能包含空格,至少在C中是这样。C11标准的控制部分(尽管这在早期迭代中基本相同)是6.10.3宏替换/9-10(组合如下):Apreprocessingdirectiveoftheform#defineidentifierreplacement-listnew-line#d

c++ - 是否可以为某个表达式#define 两个单词,而不仅仅是一个单词?

如果我想用unsignedchar替换所有出现的byte,一个简单的#define就可以了。有没有办法用#define做相反的事情?用单引号或双引号对两个单词进行分组是行不通的,也不用反斜杠转义它们之间的空格。有没有可能? 最佳答案 #define语句中的标识符不能包含空格,至少在C中是这样。C11标准的控制部分(尽管这在早期迭代中基本相同)是6.10.3宏替换/9-10(组合如下):Apreprocessingdirectiveoftheform#defineidentifierreplacement-listnew-line#d

C语言之#define用法入门详解

一、#define的基本语法在C语言中,常量是使用频率很高的一个量。常量是指在程序运行过程中,其值不能被改变的量。常量常使用#define来定义。使用#define定义的常量也称为符号常量,可以提高程序的运行效率。其常见的用法包括两种,分别是:1)#define宏名宏值2)#define宏名(参数列表)表达式第一种语法就是定义符号常量,例如:#defineN100此后直到#undefN之前,N的值都是100。当遇到#undefN,其后如果再出现N,则N需要重新定义之后才可以使用。第二种语法常用来定义符号函数。例如:#defineAREA(x,y)(x)*(y)表示用来求长和宽分别是x和y的矩形

c++ - typedef'ing enum 不会使 enum-values 可见

我有一个类,其中有一个枚举,定义如下:classX{public:enumDirection{DIR_LEFT,DIR_RIGHT};};现在我希望在另一个类中重用这个枚举,如下所示:classY{public:typedefX::DirectionDirection;};正如预期的那样,使用Y::Direction可以正常工作,例如:voidmyFunction(Y::Directiondir){}但枚举中的值似乎没有与typedef一起“复制”。如果我编写以下内容,则会出现编译错误:myFunction(Y::DIR_LEFT);相反,我不得不再次引用枚举的原始位置,像这样:myF

c++ - typedef'ing enum 不会使 enum-values 可见

我有一个类,其中有一个枚举,定义如下:classX{public:enumDirection{DIR_LEFT,DIR_RIGHT};};现在我希望在另一个类中重用这个枚举,如下所示:classY{public:typedefX::DirectionDirection;};正如预期的那样,使用Y::Direction可以正常工作,例如:voidmyFunction(Y::Directiondir){}但枚举中的值似乎没有与typedef一起“复制”。如果我编写以下内容,则会出现编译错误:myFunction(Y::DIR_LEFT);相反,我不得不再次引用枚举的原始位置,像这样:myF

c++ - 当 malloc()-ing 相同的结构时,如何在结构中使用 C++ 字符串?

我编写了以下示例程序,但它因段错误而崩溃。问题似乎在于在结构中使用malloc和std::strings。#include#include#includestructexample{std::stringdata;};intmain(){example*ex=(example*)malloc(sizeof(*ex));ex->data="helloworld";std::coutdata我不知道如何使它工作。如果甚至可以使用malloc()和std::strings有什么想法吗?谢谢,博达·赛多。 最佳答案 您不能在C++中mall

c++ - 当 malloc()-ing 相同的结构时,如何在结构中使用 C++ 字符串?

我编写了以下示例程序,但它因段错误而崩溃。问题似乎在于在结构中使用malloc和std::strings。#include#include#includestructexample{std::stringdata;};intmain(){example*ex=(example*)malloc(sizeof(*ex));ex->data="helloworld";std::coutdata我不知道如何使它工作。如果甚至可以使用malloc()和std::strings有什么想法吗?谢谢,博达·赛多。 最佳答案 您不能在C++中mall

c++ - Visual Studio C++ 编译器选项 : Why does/O2 define/Gs?

VisualStudioC++编译器选项/O2(最大化速度)相当于/Og/Oi/Ot/Oy/Ob2/Gs/GF/Gy为什么/Gs?它如何帮助最大限度地提高速度?(请注意,它是/Gs,而不是/GS。) 最佳答案 /Gs将在使用超过一页(通常为4kB)局部变量的函数中插入堆栈探测器。堆栈探测向操作系统发出信号,表明您将使用大量堆栈空间。如果这个探测命中保护页面,操作系统就知道它需要分配额外的RAM页面以使堆栈增长。这是一种优化,因为如果没有探测器,实际的内存访问会触发RAM分配,并且函数会停止直到分配RAM。探测作为函数prolog的一

c++ - Visual Studio C++ 编译器选项 : Why does/O2 define/Gs?

VisualStudioC++编译器选项/O2(最大化速度)相当于/Og/Oi/Ot/Oy/Ob2/Gs/GF/Gy为什么/Gs?它如何帮助最大限度地提高速度?(请注意,它是/Gs,而不是/GS。) 最佳答案 /Gs将在使用超过一页(通常为4kB)局部变量的函数中插入堆栈探测器。堆栈探测向操作系统发出信号,表明您将使用大量堆栈空间。如果这个探测命中保护页面,操作系统就知道它需要分配额外的RAM页面以使堆栈增长。这是一种优化,因为如果没有探测器,实际的内存访问会触发RAM分配,并且函数会停止直到分配RAM。探测作为函数prolog的一

c++ - 错误 "C++ requires a type specifier for all declarations whilst defining methods"

我对C++比较陌生(所以请尽量保持简单的答案!),我不明白为什么会出现错误:C++需要所有声明的类型说明符同时定义方法。我正在尝试编写一个简单的程序来逐行读取文本文件,将值存储到数组中。但是,当我尝试在.cpp文件中声明方法时遇到问题。请在下面找到代码。StringList.h#ifndefStringListH#defineStringListH#include#includeclassStringList{public:StringList();~StringList();voidPrintWords();private:size_tnumberOfLines;std::vecto