草庐IT

c++ - 外部链接和 »extern "C"« block

我有一个intID,我想在C++中定义它并使其可用于C链接(为简单起见设计的案例):/*i.h*/#ifdef__cplusplusextern"C"{#endifexternintID;#ifdef__cplusplus}#endif这是一个使用int的C和C++程序:/*m.cpp*/#include"i.h"#includeintmain(){std::coutintmain(){printf("%d\n",ID);}现在我想知道的是extern"C"和/或extern的语法。以下是可以和不能定义intID的方式:/*i.cpp*///constintID=88;//noClin

c++ - 为 ARM mbed 编译 PicoTCP 时未定义对 pico_dhcp_server_initiate 的引用

我正在从事一个必须使用PicoTCP的项目(请参阅https://developer.mbed.org/users/daniele/code/PicoTCP/,我使用的是该库的旧版本)。在我的main.cpp文件中,我有以下代码:#include"pico_stack.h"#include"pico_dhcp_server.h"intmain(void){//createDHCPserverstructpico_dhcpd_settingss={};s.my_ip.addr=long_be(0x0a280001);/*10.40.0.1*/pico_dhcp_server_initia

c++ - 如何理解独立 C 或 C++ 实现中的原子?

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭6年前。ImprovethisquestionC11和C++11根据执行线程定义原子。虽然在托管环境中线程是什么很清楚,但在独立语言实现中它是一个相当模糊的术语。如何在所有线程都必须在程序内部实现的独立实现中正式理解C11和C++11中指定的原子?例如:ISR是一个单独的执行线程吗?为什么标准委员会根据线程而不是简单地在代码排序领域定义原子?除了gcc之外,是否有任何嵌入式编译器已经支持C11/C++11原子?

c++ - 标准头文件中的错误

我目前遇到以下错误:c:\programfiles\microsoftvisualstudio\vc98\include\iomanip(15):errorC2059:>syntaxerror:'namespace'c:\programfiles\microsoftvisualstudio\vc98\include\iomanip(15):errorC2334:>unexpectedtoken(s)preceding'{';skippingapparentfunctionbodyc:\programfiles\microsoftvisualstudio\vc98\include\mat

c++ - 为什么整数到字符串的转换直到现在才明确包含在 C++ 中?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭9年前。Improvethisquestion我在学习C++时遇到的第一个问题是itoa函数在某些编译器上受支持,但实际上并没有在ANSI-C标准中定义(因此通常被认为是不好的做法使用)。我见过很多解决方案,比如使用stringstream或者snprintf,总觉得很迂回,终于在C++11中有了std::to_string从语言的角度来看感觉更清晰。但为什么要花这么长时间才能添加更直接的方法?除了一些关于效率的讨论和没有充分理由就不

c++ - C++11 中具有 C 链接的复杂类型

我需要将C库的header包含到我的C++11代码中。现在,header提供的例程和数据结构到处都涉及大量doublecomplex。例如,#include//..typedefstructparameters{//...doublecomplexVud;}parameters;//...doublecomplexpolylog(intn,intm,doublex);我将这个文件放入我的C++11源代码中,用extern"C"{#include"include.h"}包装(不管你信不信,这就是实际的文件名)。如果我添加了-std=c++11,g++(尝试过4.7.3和4.8.2)和cl

c++ - 求图形显示/C++中(头文件)文件依赖关系的工具

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,describetheproblem以及迄今为止为解决该问题所做的工作。关闭9年前。Improvethisquestion我知道头球后卫可以避免(大部分)麻烦;如果你愿意,可以叫我@n@l,但我只是不喜欢草率的头文件树。如果我在纸上为每个头文件画一个框并用代表#include的线连接它们,我喜欢看到一个整洁的层次结构。但我通常看到的是一个复杂的网络。也许我

c++ - 为什么 C 编译器不能以直观的方式进行有符号/无符号比较

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。“直觉”是指给定的inta=-1;unsignedintb=3;表达式(a应该评估为1。Stackoverflow上已经有许多问题询问为什么在这种或那种特定情况下C编译器提示有符号/无符号比较。答案归结为整数转换规则等。然而,在比较有符号整数和无符号整数时,为什么编译器必须如此异常愚蠢,似乎没有理由。使用上面的声明,为什么表达式像(a不会自动替换为(a如果

c++ - block 矩阵乘法

关闭。这个问题需要debuggingdetails.它目前不接受答案。编辑问题以包含desiredbehavior,aspecificproblemorerror,andtheshortestcodenecessarytoreproducetheproblem.这将有助于其他人回答问题。关闭6年前。Improvethisquestion我想进行分块矩阵乘法(将一个矩阵分成多个sxs矩阵,再将相应的分块相乘)。我写的代码如下Hennesy的架构书示例代码:for(intjj=0;jj(n/s)?(n/s):(jj+s-1));j++){temp=0;for(intk=kk;k(n/s)?

C++98 花括号 const 标量初始化

我偶然发现了我不理解的代码。这是它的简化版本:templatestructA{};intconsti={42};typedefAAi;intconstj=42;typedefAAj;此代码可在C++98模式下使用GCC进行编译,但不能在Clang中进行编译。Clang产生以下错误:$clang-Wall-Wextra-std=c++98-ctest.cpptest.cpp:4:11:error:non-typetemplateargumentoftype'int'isnotanintegralconstantexpressiontypedefAAi;^test.cpp:4:11:not