草庐IT

function_char-length

全部标签

c++ - 在 C++11 标准中哪里说 char* p = "abc";是病态的?

在C++11标准中哪里说char*p="abc";格式错误? 最佳答案 这在C++03中仍然有效(尽管已弃用),但在C++11中情况发生了变化。C++11标准的附件C提到(参见C1.1):Change:StringliteralsmadeconstThetypeofastringliteralischangedfrom“arrayofchar”to“arrayofconstchar.”Thetypeofachar16_tstringliteralischangedfrom“arrayofsome-integer-type”to“ar

c++ - 如何从 vector<char> 复制一个整数

我现在正在处理wav文件,我正在尝试解析它们。我暂时不想使用图书馆。我用fstream打开wav文件并将所有数据读取到vector。现在我想解析wav文件头。例如,我想获取第4到第8个字节之间的文件大小。我想将其分配给一个整数。我会用memcpy轻松完成此操作。但是因为它是C++,所以我不想使用memcpy。我最终得到的解决方案:std::vector::iteratorvectorIte=soundFileDataVec.begin();vawParams.totalfilesize=0;//SinceitislittleendianIusedreverse_copystd::rev

c++ - 使用基于范围的 For 循环和 Char 指针字符串

这个问题在这里已经有了答案:Rangebasedforloopsonnullterminatedstrings(3个答案)关闭9年前。我是C++11的新手,坦率地说,我已经一年多没用过C++,所以一开始我有点生疏。我正在根据旧的大学教科书做一些练习,在尝试迭代char指针字符串时遇到了问题(例如:char*c="astring";)。我在谷歌上找不到任何有用的东西。我已经习惯了Java,其中foreach循环可以遍历任何集合。我知道指针是如何工作的,但是我从C++休假让我对实际使用它们的语法一无所知。谁能告诉我为什么以下代码(特别是convert()函数)会导致编译错误,其中“开始”和

c++ - GNU 编译器 vs. Visual Studio 在数组上分配 w/Length Constant w/in a Scope

我知道如果你在c/c++中设置一个动态值,你不能在括号内使用该值来分配一个数组(这会使它成为所谓的可变长度数组(VLA),其中currentC++standard不支持)...即见:C++:VariableLengthArrayhttp://en.wikipedia.org/wiki/Variable-length_array我不太明白(而且我在这里没有看到确切地问到的)是为什么GNUc/c++编译器(gcc、g++)没问题使用基于整数值的动态分配(据我所知),只要该值是数组分配范围内的常量,但VisualStudio不支持这一点并且将拒绝编译代码,吐出错误。例如在g++中voidFo

c++ - 错误 LNK2019 : unresolved external symbol referenced in function main

我正在尝试用C++运行我的简单汇编代码。我只有两个文件“.cpp”文件和“.asm”文件。编译时出现错误(见下文)。如果有人能提供帮助,我将不胜感激...:)这是我的“main.cpp”文件#includeusingnamespacestd;extern"C"intGetValueFromASM();intmain(intargc,char*argv[]){cout我还有一个简单的“asm.asm”文件.codeGetValueFromASMprocmovrax,3254retGetValueFromASMendpend尝试构建时出现此错误:1>main.obj:errorLNK201

c++ - 为什么不允许使用 "second C linkage of overloaded function"?

我将我的C++dll转换为Cdll:#ifdef__cplusplusextern"C"{#endifMY_EXPORTintmy_func();MY_EXPORTvoidmy_func(intn);#ifdef__cplusplus}#endif没有externC声明一切正常。有了这个声明,我得到了errorC2733:secondClinkageofoverloadedfunction'my_func'notallowed为什么不允许从C风格的dll导出重载函数? 最佳答案 C不允许重载函数。那就是C不支持重载。这是C++的一个

c++ - C++ 中的 __builtin__functions 有什么用?

我正在调试一个对性能敏感的事务处理系统。我找到了一个使用__builtin_memcpy和__builtin_memset而不是memcpy和memset的代码。__builtin_functions有什么用?,以防止对体系结构或编译器的依赖性问题?或者..__builtin_functions更受欢迎是否有任何性能原因?谢谢你:D 最佳答案 传统的库函数,标准的memcpy只是对一个函数的调用。不幸的是,memcpy通常会为每个小拷贝调用,调用函数、打乱几个字节并返回的开销是相当大的开销(特别是因为memcpy添加了在函数的开头添

c++ - 如何将 unsigned char 数组转换为 unsigned long long?

假设我有8个unsignedchar,我想将其转换为unsignedlonglong。例如,如果所有char都等于0xFF,则unsignedlonglong将等于0xFFFFFFFFFFFFFFFF。使用C或C++最有效的方法是什么? 最佳答案 例如:unsignedcharbuffer[8]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};unsignedlonglongtarget;memcpy(&target,buffer,sizeoftarget);请注意,如果buffer的所有元素并非

c++ - 奇怪的错误 char 的加密 (ascii)

这是一个简单的代码,但我无法理解一个奇怪的事件。代码:voidCrittografia::CifraTesto(chartext[]){inti;for(i=0;i'z'){text[i]=text[i]-26;}}}函数接收此处输入的字符串:Itworks.在这种情况下,它使用key5。“y”在“d”中正确更改。但在这种情况下:Doesn'twork.键值为7时,它会更改'Ç'中的'y'而不是正确的'f',因此显然不会执行该行:“text[i]=text[i]-26;” 最佳答案 text[i]=text[i]+key;当key为

C++ 为什么当它们 100% 看起来匹配时会出现错误 "no matching function"?

我不明白为什么我会收到一条错误消息,指出我的函数与我定义的模板函数不匹配。在我看来,它们看起来完全一样。这是我调试中的错误:错误:没有匹配函数来调用'mergesort'newVec=mergesort(vec.begin(),vec.end());所以我可以学习和编写更好的通用函数和模板,我需要更改什么才能消除该错误?(需要说明的是,我并不是在寻求有关我的归并排序算法的帮助-我知道它有问题,但我会解决它们。)#include#includeusingnamespacestd;templatevectormergesort(typenamevector::iterator,typena