C/C++签名中两个const的含义

2023-12-03

我一直在包装一个 gl 文件scheme并且失败了两次gl.h标头。我使用的是 OSx,所以它可能依赖于平台,但我在生活中的其他地方从未见过这种语法。

typedef void (* glMultiDrawElementsProcPtr) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei primcount);

注意const GLvoid* const *indices。方案 C 解释器有一个小的 C 子集,并且不理解标头的这一部分。

这是什么意思以及如何安全地用其他东西替换它......我将其更改为

const GLvoid** indices


C 和 C++ 中的类型是从右向左读取的,除了大多数人坚持将const在错误的一边。一旦你修复了const安置来自

const GLvoid* const*

to

GLvoid const* const*

读取类型变得很简单:它是一个指向const指向一个的指针const类型的对象GLvoid(你可能真的不能拥有类型的对象GLvoid但它是任何对象的占位符)。您还可以拥有内部指针可修改和/或对象可修改的组合,具体取决于哪个const你遗漏了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C/C++签名中两个const的含义 的相关文章

  • EF Core Group By 翻译支持条件总和

    听说 EF Core 2 1 将支持翻译小组 我感到非常兴奋 我下载了预览版并开始测试它 但发现我在很多地方仍然没有得到翻译分组 在下面的代码片段中 对 TotalFlagCases 的查询将阻止翻译分组工作 无论如何 我可以重写这个以便我
  • 通过 CMIS (dotCMIS) 连接到 SP2010:异常未经授权

    我正在使用 dotCMIS 并且想要简单连接到我的 SP2010 服务器 我尝试用 C 来做到这一点 如下所示http chemistry apache org dotnet getting started with dotcmis htm
  • 在结构中使用 typedef 枚举并避免类型混合警告

    我正在使用 C99 我的编译器是 IAR Embedded workbench 但我认为这个问题对于其他一些编译器也有效 我有一个 typedef 枚举 其中包含一些项目 并且我向该新类型的结构添加了一个元素 typedef enum fo
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • 如何从 appsettings.json 文件中的对象数组读取值

    我的 appsettings json 文件 StudentBirthdays Anne 01 11 2000 Peter 29 07 2001 Jane 15 10 2001 John Not Mentioned 我有一个单独的配置类 p
  • 不同枚举类型的范围和可转换性

    在什么条件下可以从一种枚举类型转换为另一种枚举类型 让我们考虑以下代码 include
  • 堆栈溢出:堆栈空间中重复的临时分配?

    struct MemBlock char mem 1024 MemBlock operator const MemBlock b const return MemBlock global void foo int step 0 if ste
  • C#中如何移动PictureBox?

    我已经使用此代码来移动图片框pictureBox MouseMove event pictureBox Location new System Drawing Point e Location 但是当我尝试执行时 图片框闪烁并且无法识别确切
  • WCF 中 SOAP 消息的数字签名

    我在 4 0 中有一个 WCF 服务 我需要向 SOAP 响应添加数字签名 我不太确定实际上应该如何完成 我相信响应应该类似于下面的链接中显示的内容 https spaces internet2 edu display ISWG Signe
  • 使用 Bearer Token 访问 IdentityServer4 上受保护的 API

    我试图寻找此问题的解决方案 但尚未找到正确的搜索文本 我的问题是 如何配置我的 IdentityServer 以便它也可以接受 授权带有 BearerTokens 的 Api 请求 我已经配置并运行了 IdentityServer4 我还在
  • 控件的命名约定[重复]

    这个问题在这里已经有答案了 Microsoft 在其网站上提供了命名指南 here http msdn microsoft com en us library xzf533w0 VS 71 aspx 我还有 框架设计指南 一书 我找不到有关
  • 如何序列化/反序列化自定义数据集

    我有一个 winforms 应用程序 它使用强类型的自定义数据集来保存数据进行处理 它由数据库中的数据填充 我有一个用户控件 它接受任何自定义数据集并在数据网格中显示内容 这用于测试和调试 为了使控件可重用 我将自定义数据集视为普通的 Sy
  • 垃圾收集器是否在单独的进程中运行?

    垃圾收集器是否在单独的进程中启动 例如 如果我们尝试测量某段代码所花费的进程时间 并且在此期间垃圾收集器开始收集 它会在新进程上启动还是在同一进程中启动 它的工作原理如下吗 Code Process 1 gt Garbage Collect
  • 这些作业之间是否存在顺序点?

    以下代码中的两个赋值之间是否存在序列点 f f x 1 1 x 2 不 没有 在这种情况下 标准确实是含糊不清的 如果你想确认这一点 gcc 有这个非常酷的选项 Wsequence point在这种情况下 它会警告您该操作可能未定义
  • 为什么编译时浮点计算可能不会得到与运行时计算相同的结果?

    In the speaker mentioned Compile time floating point calculations might not have the same results as runtime calculation
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • C# 成员变量继承

    我对 C 有点陌生 但我在编程方面有相当广泛的背景 我想做的事情 为游戏定义不同的 MapTiles 我已经像这样定义了 MapTile 基类 public class MapTile public Texture2D texture pu
  • 基于 OpenCV 边缘的物体检测 C++

    我有一个应用程序 我必须检测场景中某些项目的存在 这些项目可以旋转并稍微缩放 更大或更小 我尝试过使用关键点检测器 但它们不够快且不够准确 因此 我决定首先使用 Canny 或更快的边缘检测算法 检测模板和搜索区域中的边缘 然后匹配边缘以查
  • Windows 和 Linux 上的线程

    我在互联网上看到过在 Windows 上使用 C 制作多线程应用程序的教程 以及在 Linux 上执行相同操作的其他教程 但不能同时用于两者 是否存在即使在 Linux 或 Windows 上编译也能工作的函数 您需要使用一个包含两者的实现

随机推荐

  • 在 iOS 中声明实例变量 - Objective-C

    好吧 这些天我读了很多关于这个话题的文章 但我总是感到困惑 因为我每次搜索的答案都不同 我需要知道在 iOS 中声明实例变量的最佳方法 到目前为止 我知道我应该只在 m 文件中声明它们并保持 h 干净 但我做不到 编译器给我编译错误 这里只
  • Math.Tan 不起作用

    我目前正在为 Windows Phone 编写一个计算程序 其中一项计算是查找用户输入的数字乘以用户输入的另一个数字的正切值 问题是当我输入 1 tan 45 即 1 时 它返回 1 6 我通过调试器运行了几次 我可以看到 Math Tan
  • 使用 Jsoup 从 html 文件中提取标签

    我正在对网络文档进行结构分析 为此 我只需要提取网络文档的结构 仅标签 我找到了一个名为 Jsoup 的 java html 解析器 但我不知道如何用它来提取标签 Example this is head this is body Outp
  • django根据模型属性自动填充一些数据

    我正在研究一个概念 我想在保存模型时捕获某些信息 为了了解完整情况 我有一个具有以下模型的应用程序核心 核心 模型 py from django db import models from django contrib auth model
  • 将新元素添加到映射后出现“不是‘map-get’的映射”错误

    如何将映射合并到 sass 中的现有映射中 我目前正在使用 sass 地图 config部分来定义我的断点 例如 breakpoints small 35rem medium 55rem large 75rem xlarge 90rem e
  • @EJB 注释与 JNDI 查找

    是否存在使用 JNDI 比使用注入无状态会话 bean 更好的情况 EJB注解 我们将 JSF 1 2 与 Sun Application Server 9 0 01 结合使用 我们的团队正在讨论在托管 Bean 中使用 SLSB 时哪种方
  • 如何防止长按 EditText Widget 时显示虚拟键盘?

    我的应用程序中有一个 EditText 小部件 我已将其设置为只读 我想知道用户何时长按它 如果用户点击此小部件 我不希望弹出虚拟键盘 为了阻止虚拟键盘出现 我使用这个 EditText 文本 EditText findViewById R
  • 插入数据并获取返回的 id 后如何修复 DapperExtensions 错误

    I use 简洁的扩展将数据拉取和推送到数据库 I use unsigned intid 作为我的主键database并在class以及 我的课看起来像这样 public class Product Column id public uin
  • CodePipeline 的 Cloudformation 模板

    我们有一个 aws 设置 其中有一个测试帐户和一个生产帐户 我们的代码提交 java lambda 位于我们的测试帐户中 我们希望使用 CodePipeline 将代码从此处部署到我们的测试帐户和生产帐户 我想知道是否有人知道任何可以执行此
  • 另一个视图控制器中属性的内联 KVO

    我有一个带有动态变量 值 的 vc 我需要知道它何时在调用 cv 的闭包中发生更改 目标VC objc dynamic var value String source if let vc TagButtonPopupViewControll
  • 如何确认邮件来源

    我从我的 smtp 服务器发送电子邮件 例如 设置From to 电子邮件受保护 收件人会认为电子邮件来自anydomain 如何确认邮件来源 处理电子邮件伪造的方法有多种 Use PGP or SSL 签名证书 Use SPF 检查Rec
  • 使用 css 在子菜单前添加三角形

    如何在下面的示例中添加三角形Fiddle 我需要删除具有白色背景的父菜单并显示三角形以使其看起来更像这样 我尝试添加以下 css 但它不起作用 dropdown li first child gt a after content posit
  • 以编程方式将文件夹复制并粘贴到映射的网络驱动器中

    我试图在映射的网络驱动器上复制一个文件夹 不是文件 而是整个目录 并将其新版本以不同的名称粘贴到同一位置 如果我使用本地驱动器 下面的代码效果很好 但是 我在使用网络驱动器时遇到身份验证错误 DirectoryCopy mappedserv
  • 在 Java-8 中重构多个 If' 语句

    我需要验证班级中的必填字段 例如 9字段不得是null 我需要检查它们是否全部为空 但我现在使用多个 if 语句 如下所示 StringBuilder mandatoryExcessFields new StringBuilder MAND
  • 没有 ObservableDataService 的提供者

    我收到错误 No provider for ObservableDataService ObservableDataService https github com sanex3339 bannerscreator blob master
  • 使用 mutate_at 用列名更新单元格值

    我正在处理调查数据 有些问题要求参与者检查所有适用于他们的选项 在我当前拥有的数据框中 每个可能的响应都有一列 如果参与者选择了该选项 则记录值为 1 例如 对于问题 您在工作中经历过以下哪种情绪 使用选项 无聊 压力 满足 我的数据框将如
  • 将表单输入值发送到 URL

    我有一个简单的搜索表单
  • GitHub 中的分支之间合并

    我分叉了一个 GitHub 存储库 然后我向我的叉子推送了一些更改 然后原始存储库合并了我的更改和其他一些更改 现在 我想合并那些我缺少的更改 我尝试了简单的拉动 然后推送 但这会产生重复的提交 最好的方法是什么 您可能对每个存储库都有一个
  • ModuleNotFoundError:没有名为“camelot”的模块

    我想从 pdf 中提取表格并为此 我用的是卡米洛特 但每当我尝试导入它时 我都会收到此错误 import camelot Traceback most recent call last File
  • C/C++签名中两个const的含义

    我一直在包装一个 gl 文件scheme并且失败了两次gl h标头 我使用的是 OSx 所以它可能依赖于平台 但我在生活中的其他地方从未见过这种语法 typedef void glMultiDrawElementsProcPtr GLenu