c++有关的问题


为什么在Clang和GCC中两个无符号整数之和的结果类型不同

我正在为我的模拟器编写一些低级代码,其中涉及很多 16 和 8 位无符号整数。我在我的项目中启用了-Wconversion警告,所有警告都被视为错误 (-Wer.


相同数量对象的内存占用

A类 {};
B类 {};
//这两个类都被正确定义。
Struct MyStruct {
Typedef std::vector< std::pair< const A *,const B * > > TVec;
Std::map< std::string,TVec &.


Uint8_t * 值在c中的意义和调试 (打印)

假设我有一些数据 (例如代表灰色图像像素的数字) 从文件中读取并打包到指向uint8_t的指针中。
Uint8_t * data = getData(readFile(filePath));
如果我


用于存储自定义对象/数据类型的通用B树

我想有一个B树,它可以存储任何类型的数据。甚至可能是自定义对象和数据类型。对于ex: 我可能会存储一些整数,一些字符串 (“ex: jack,jill等),甚至一些自定义ob.


有没有办法静态初始化C中的动态分配数组?

在C中,我可以静态初始化一个数组,例如:
Int a[] = { 1,2,3 };
是否有一个简单的方法来初始化一个动态分配的数组为一组立即值?
Int * p = new int[3];
P =.


如何在工作于x86,arm,GCC和icc的Linux上执行原子操作?

每个现代操作系统今天都提供了一些原子操作:
Windows已互锁 * API
FreeBSD有 <machine/atomic.h>
Solaris具有 <atomic.h>
Mac OS X具有 <libkern/OSAtomic.h>
Anyt.


在static_assert错误中包含类型或函数名称

在许多情况下,模板函数和类型需要静态断言来限制可接受的专业类型或其他条件。然后一个有意义的编译器错误消息是


C中有const吗?

这个问题可能很幼稚,但是:
C中有const关键字吗?
从哪个版本开始?
C和C中的const之间是否有任何语义和/或句法差异?


在C 11 中引入了哪些突破性的变化?

我知道C 11 中至少有一个会导致一些旧代码停止编译的变化: 在标准库中引入显式运算符bool(),正在替换op的旧实例.


C便携式浮点位表示?

是否有符合C标准的方法来确定编译时 (或运行时,作为替代) 的 “浮动”,“双” 和 “长双” 的结构?
如果我假设std::numeric_limits & lt.


如何正确替换全局新 & 删除运算符

首先,至少有 4-5 个主题与SO相似。我读了每一个,我觉得它们并没有真正帮助我解决这个具体问题。如果别人发现重复的问题.


编译时的C交换定义

我有一个目录,看起来像这样:
.
├── Makefile
├── 解决方案
│ ├── 开展热天.cpp
│ └ ── 天气.h
├── 学生
│ ├── 开展热天.cpp
│ └ ── 天气.h
└ ── 测试
└ ── Test_Weather_Weather.


重载提取运算符

对于时间类的硬件分配,我有重载提取运算符的指令,但是输入格式必须与输出相同,即 (天 ~ HH:MM:SS)。这就是我.


遍历数组C

新手问题
C数组作为
类App1 {
Int end = 3;
公众:
Int list[end];
Void App1::AddInput(){
For (int i = 0; i<end; i ){
Cout << endl << "在arra中输入元素.


带有加法和移位的float point mul (* 10)

我的问题很简单: 我可以用shift和加法做 2*10,但是我不知道如何用shift和加法得到 2.2*10。任何建议将非常感谢。
-Kha.


将指针转换为float?

我有一个未签名的char *。通常这指向一个数据块,但在某些情况下,指针是数据,即。将int值转换为unsigned char * 指针 (unsigned char * intData = (unsig.


手动调用析构函数总是不良设计的标志?

我在想: 他们说如果你手动调用析构函数 -- 你做错了什么。但总是这样吗?有什么反例吗?必须调用它的情况


STL中的矢量与列表

我注意到在有效的STL
Vector是序列的类型,
默认情况下应使用。
这是什么意思?似乎忽略效率向量可以做任何事情。
有人能


在C # 中为给定的场景选择列表或向量

对于我的应用程序,我使用STD矢量。我在最后插入向量,但是从向量随机擦除,即元素可以从中间,前面任何地方擦除。这两个只是要求.


C parallel std::sort for floating values

我有一个由> 数百万浮点值组成的大文件。我现在可以通过将文件读入向量来轻松地对它们进行排序,例如-
Std::vector<float> v;
Std::sort(v.begin(.


最小的无窗口OpenGL上下文初始化

如何用最少的代码初始化一个无窗口的OpenGL上下文?
我在这里读到过,你可以使用wglCreateContextAttribsARB来创建无窗口上下文,但是它不会解释.


铸造中的错误加倍为整数

我正在计算超过小数点的有效数字的数量。我的程序丢弃小数点后间隔超过 7 个数量级的任何数字。期待s.


Cexp函数在x64 下的不同结果对i7-3770 和i7-4790

当我用下面的代码执行一个简单的x64 应用程序时,我在Windows pc上得到不同的结果,i7-3770,CPU i7-4790。
# Include <cmath>
# Include <iostream>
# Include <


为什么 “int64_t” 的默认对齐是在 32 位x86 体系结构上的 8 字节?

为什么在 32 位x86 ABIs中int64_t (例如长) 的默认对齐 8 字节?4 字节对齐似乎很好,因为它只能作为两个 4B的一半访问。


C项目类型: unicode vs多字节; 利弊

我想知道堆栈溢出社区在创建一个带有unicode或多字节字符集的项目 (主要是c) 时会怎么想。
有没有专业人士去Unicode


内在计数尾随零位 64 位整数?

这是对以前一些关于位操作的问题的跟进。我修改了这个站点的代码,枚举N位设置为K的字符串 (x是当前设置为K位的int64_t,.


这个C指针使用线程安全吗?

我是否需要在 “p = tmp” 之前插入围栏以避免内存重新排序?是否可能 “p = tmp” 之前执行 “(* tmp)[1]= 2” 由于内存重新排序从线程 2 的视图不使用栅栏/原子/


避免动态多态性的CRTP

如何在C中使用CRTP来避免虚拟成员函数的开销?


获取GDB以保存断点列表

好的,信息中断列出了断点,但不是一种格式,可以很好地使用-命令重用它们,就像这个问题一样。GDB是否有一个方法将它们转储到文件accepta.


在生成NaN浮点数而不更改代码时停止调试器

我读了这个和这个。精髓是,如果通过包含fenv.h并启用所有浮点异常但FE_INEXACT by feenableexcept(FE_ALL_EX.


在类优化中没有使用const静态变量?

一个合理的像样的编译器可以丢弃这个const静态变量吗
A类 {
Const static int a = 3;
}
如果它在编译的二进制文件中没有使用,或者它是否在二进制文件中显示?


你能省略main函数中的返回类型吗?

关于主函数的声明是否有一些特殊的规则?
根据ideone这是合法的C:
Main () //与int main() 相反
{
返回 0;
}
另一方面,.


C std::vector emplace vs insert

我想知道这两者有什么不同。我注意到emplace是c 11 加法。那么为什么要增加呢?


内存中的继承保护成员变量副本

我被告知,如果我做继承时,基类包含受保护的成员变量,一个子类将构造基类,它将在内存中复制它的成员。示例:


如何结束C代码

如果满足某个条件,我希望我的C代码停止运行,但是我不知道如何做到这一点。因此,只要在任何时候,如果if语句是真的,就会像这样终止代码:
如果 (x = = 1)
{


删除代码部分与探查器的数据不匹配

我正在做一个概念配置文件和优化类型的例子的一点证明。然而,我遇到了一些我无法解释的事情,我希望这里有人能澄清这一点。
我写了一个v.


显式模板实例化-何时使用?

经过几周的休息,我正试图用书籍模板扩展和扩展我的模板知识-David vandendoorde和Nicolai M的完整指南。约瑟蒂斯,还有我想做的


存储在char数组中的Double数据返回浮点值

为什么当我将double值的数据存储在char数组中时,如果我将数据从char数组获取到另一个double,它会返回一个浮点值?
在此:
双vals = 3.141592654;
Char.


是ctime,time.h,sys/time.h的混乱

我希望一些Linux的死硬可以回答我,我应该如何编写可移植 (POSIX) 代码,当使用时间函数。
一些SO线程表明,包括ctime将是正确的事情,当


C: 循环菜单开关

我有一个任务,我必须有一个菜单,它有点工作,如果我输入错误的输入,它不能崩溃或退出,也不能有一个无休止的循环。虽然我的菜单没有退出或


SIMD,SSE,AVX - mask 8 floats by unsigned char?

如何通过我的unsigned char变量中的位来屏蔽我的 _ _ m256 变量中的 8 个浮动?(编译期间不知道它们的值)
_ _ M256 flts = _ mm256_set1_ps(5.0f);
Unsigned char = 0b10010111;.


什么时候会有人使用工会?它是C-only天的残余吗?

我已经学会了,但并没有真正得到工会。我经历的每一个C或C文本都介绍了它们 (有时顺便说一句),但是它们往往很少给出为什么或在哪里使用它们的实际例子。W.


使用动态内存复制类

可能重复:
深拷贝与浅拷贝
重载运算符 = 和重载复制构造函数之间的区别是什么?
我看到复制一个类的两种方式:
复制构造函数


负值的模运算符

为什么做这样的操作:
Std::cout << (-7% 3) <std::endl;
Std::cout << (7% -3) <std::endl;
给出不同的结果?
-1
1


性能差异: std::accumulate vs std::inner_product vs Loop

今天,我想分享一些当我试图实现这个简单的操作时让我大吃一惊的东西:
我发现不同的方式来执行相同的操作:
通过使用std::inner_product。


使用融合乘法累积双精度有多有利?

我试图通过查看生成的汇编代码来理解使用带有双参数的std::fma是否有利,我使用的是标志 “-O3”,我正在比较t的组件.


C中 “double to long long” 中的混淆

我的代码:
Int main()
{
长长a = pow(2,63) - 1;
长长b = pow(2,63);
双c = pow(2,63) - 1;
双d = pow(2,63);
Printf ("% lld \ n % f \ n % lld \ n",a,b,c,d,(长) c,(长


英特尔MKL内存管理和例外

我正在尝试英特尔MKL,他们似乎有自己的内存管理 (C风格)。
他们建议使用他们的MKL_malloc/MKL_free对向量和矩阵,我不知道什么是一个


在C中禁用复制省略

免责声明: 研究的目标是如何为提供的部分代码禁用复制省略和返回值优化。如果想提及XY问题,请避免回答。曲.


Printf比std::cout快 5 倍以上?

# Include <iostream>
# Include <cstdlib>
# Include <cstdio>
# Include <ctime>
Int main(int argc,char * argv[])
{
Std::clock_t start;
双倍持续时间;
Std::cout.


上一页 下一页