小编Zak*_*kir的帖子

glad.h 给出了包含 opengl 头文件的错误

我想在我的代码中使用glad.h。我在 Visual Studio 2013 上编程。出于某种原因,它给了我错误C1189: #error : OpenGL header already included, remove this include, glad already provides it
有人可以帮助我吗?

这些是我包含的标题:-

#include <glad/glad.h>
#include <GLFW/glfw3.h>
#include <iostream>
Run Code Online (Sandbox Code Playgroud)

c++

15
推荐指数
3
解决办法
1万
查看次数

从源代码编译android APK

我有一个用 Java 编写的 Android 应用程序的源代码。我想对代码进行一些更改并编译为 android 应用程序。我对 Java Android 应用程序一无所知。

无论如何我可以使用任何软件编译并将其制作为APK吗?

这是来源:-

java android apk

5
推荐指数
1
解决办法
3万
查看次数

uint32,int16,uint8 ..为什么这些常用的数据类型没有进入标准

多年来涉及多个组织和涉及C/C++的各种项目我已经看到通过定义一个本地版本的types.h大部分看起来像这样解决了对固定宽度整数的需求: -

typedef  signed char        int8;
typedef  unsigned char      uint8;
typedef  signed short       int16;
typedef  unsigned short     uint16;
typedef  signed long        int32;
typedef  unsigned long      uint32
typedef  signed long long   int64;
typedef  unsigned long long uint64;
Run Code Online (Sandbox Code Playgroud)

为什么这些没有集成到C/C++标准中?

我知道C99已经标准化的喜欢uint32_t.类似地,微软已经定义了它自己的UINT32等等. - 但是这些仍然需要,typedef因为uintX术语的使用在传统以及由经验丰富的开发人员编写的新代码中很普遍

我也知道Boost Integer Library - 再次说明它不是标准C++,因为它们清楚地提到: -

因为这些是boost头,所以它们的名称符合boost头命名约定,而不是C++标准库头命名约定.

关于将[u]intXs纳入官方标准的利弊的想法?

编辑:
这个问题已经产生了质量答案和意见.谢谢他们提供的信息和帮助!一些评论表明这个问题不够明确: -
"你是专门要求为标准中已有的typedef添加更多的别名" - 是的

@Pascal Cuoq回答解决了真正的问题,以防这些问题被添加到标准中: -

不要等待名称uint32成为C++中整数类型的正式名称; 它可能永远不会发生, …

c c++

4
推荐指数
1
解决办法
1648
查看次数

我可以依赖initializer_list :: const_iterator作为普通指针吗?

这个问题表明std::initializer_list<int>::const_iterator类型只是一个普通的int const*指针,但是这个答案(对于同一个问题)引用的标准的措辞听起来更像是一个建议,而不是对我的保证.

在我的代码中,问题发生如下:我有一个处理a的子范围的函数initializer_list,在不同的情况下,我重用传递单个元素的便捷函数的代码(作为单元素范围):

void doStuff(int const* begin, int const* end)
{ ... do stuff ... }

  // main use; in the real code, 'init' is a parameter of a function
  std::initializer_list<int> init({1, 2, 3, 4, 5});
  doStuff(init.begin() + 1, init.end());

  // alternative use of doStuff, relies on the pointer assumption
  int x = 6;
  doStuff(&x, (&x) + 1);
}
Run Code Online (Sandbox Code Playgroud)

这种结构依赖于迭代器确实是指针的事实.它至少适用于我的clang ++ 3.9编译器.我可以依靠它来始终工作,即指针假设是否可移植?保证便携?或者我应该将参数类型更改doStuff为模板参数,以确保安全吗?

template <typename Iterator>
void doStuff(Iterator begin, Iterator …
Run Code Online (Sandbox Code Playgroud)

c++ pointers iterator initializer-list

3
推荐指数
1
解决办法
148
查看次数

从C src调用C++函数

我在MS Visual Studio 2010项目中混合使用C/C++代码库,并尝试从C src文件调用C++文件中定义的静态函数.现在我通过将C src重命名为CPP来实现它(ac - > a.cpp)只是想知道是否有一种更优雅的方式绕过它(转换一些神奇的编译器标志等)而不进行任何大规模的手术代码库(比如使用线程中建议的不透明指针)

请注意我的代码库非常复杂,我已经创建了这个小的VS片段,用最小的可证明的代码重现错误

AC

#include "b.h"

void test()
{
  B::func();
}
Run Code Online (Sandbox Code Playgroud)

BH

#ifdef __cplusplus
extern "C" {
#endif

class B{
public:
  static void func();
};

#ifdef __cplusplus
}
#endif
Run Code Online (Sandbox Code Playgroud)

b.cpp

#include "b.h"

#ifdef __cplusplus
extern "C" {
#endif

void B::func()
{
  return;
}

#ifdef __cplusplus
}
#endif
Run Code Online (Sandbox Code Playgroud)

错误: - 在MS Visual Studio 2010中

1>c:\.....\b.h(5): error C2061: syntax error : identifier 'B'
1>c:\.....\b.h(5): error C2059: syntax error : ';'
1>c:\.....\b.h(5): error C2449: …
Run Code Online (Sandbox Code Playgroud)

c c++ compiler-errors visual-studio-2010

2
推荐指数
1
解决办法
330
查看次数

嵌入式系统:设计监控地址的API

这个问题被作为半导体公司技术面试的起点.我想没有正确的答案 - 这个开放式问题的目的是衡量工程师的深度和舒适度.问题: - 设计一个监控地址的API,并在地址包含特定值时返回: -

void reach_target_value(volatile int* addr, int value);
Run Code Online (Sandbox Code Playgroud)

我天真的解决方案是这样的: -

void reach_target_value(volatile int* addr, int value)
{
  while(*addr != value)
  {
    //Do nothing - spin in a tight loop
  }
}
Run Code Online (Sandbox Code Playgroud)

现在显然在多处理/多线程环境中,如果在执行进程/线程被上下文切换时地址恰好达到目标值,则可能错过返回.在这种情况下,如何增强代码以确保它在多线程环境中运行良好,其中多个线程将监视具有不同目标值的相同地址?感谢您阅读 - 感谢您的建议 - 代码 - 指针!

c embedded multithreading

0
推荐指数
1
解决办法
142
查看次数