C 中构造函数和析构函数的命名约定 [关闭]

2024-02-08

假设我有一个struct list,我想提供一个“构造函数”和一个“析构函数”函数。我应该如何分别命名它们?

void list__init(struct list * self);
void list__construct(struct list * self);
void list__create(struct list * self);
...

void list__done(struct list * self);
void list__destruct(struct list * self);
void list__destroy(struct list * self);
...

是否存在现实世界中占主导地位的既定命名约定?


GLib/GTK 人们创建了使用约定_new and _free用于内存分配构造函数和析构函数以及_init and _destroy用于非内存分配构造函数和析构函数。

pthread 库似乎主要遵循以下约定_init and _destroy对于非内存分配的和_create用于内存分配。

X11用途XOpenFoo and XCloseFoo.

C 库本身使用free用于结构的非内存分配清理,例如glob_t and wordexp_t.

所以,我想答案是否定的,但肯定有一大群人在某些项目中选择了特定的符号。

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

C 中构造函数和析构函数的命名约定 [关闭] 的相关文章

  • 为什么在 lambda 内部引发异常是 C# 7 的一项功能? [复制]

    这个问题在这里已经有答案了 该语句在 VS2015 中无法编译 但在 VS2017 中可以编译 var example new Action gt throw new Exception 为了支持在 lambda 表达式内抛出异常 必须对
  • 线程独占数据:如何存储和访问?

    NET 中是否有可能将对象实例绑定到线程的当前执行上下文 这样在代码的任何部分我都可以做类似的事情CurrentThread MyObjectData DoOperation 并确保我访问特定于线程的数据 谢谢 你可以看一下线程静态属性 h
  • 为什么使用数组索引循环数组比指针访问慢?

    我正在读Kochan的书 Programming in C 在第 14 页的 指针和数组 部分中 264 他说 一般来说 索引数组的过程比执行索引过程花费更多的时间 访问指针内容的过程 其实这也是主要原因之一 为什么使用指针来访问数组的元素
  • 更改图像颜色与透明背景

    我需要使用 c System Drawings 将透明背景上带有绿色圆圈的图像加载到位图图像中 这是最简单的部分 但是 我需要在将其添加到更大的图像之前更改圆圈的颜色 而不影响周围的透明度 就我而言 我需要将圆圈颜色更改为黄色并将其添加为太
  • Monitor.Pulse & Wait - 意外行为

    http www codeproject com Articles 28785 Thread synchronization Wait and Pulse demystified http www codeproject com Artic
  • C 链表销毁函数

    我正在尝试学习 C 和很多人一样 我对指针有点困惑 无论如何 我创建了一个递归函数来销毁我的链表 但是正如我调试的那样 当我从函数返回时 列表的头部不应该为空 所以我猜这是对指针的一些基本误解 这是函数 void destroy struc
  • 为什么 ObservableCollection 有两个集合构造函数?

    The 可观察集合 T https msdn microsoft com en us library ms668604类有两个构造函数 可以在其中传递项目集合 一个构造函数接受一个IEnumerable T 另一个List T 鉴于List
  • 将视频上传/保存到数据库或文件系统

    我以前从未尝试过保存视频 所以我对此了解不多 我知道如果视频很小 我可以转换为字节数组并保存到数据库 但是为了提高效率 我想了解如何将任何上传的视频保存到我的服务器文件中 然后只保存该文件的文件路径我的数据库表中的视频 我完全不知道如何开始
  • 用 OpenCL C 编写快速线性系统求解器

    我正在编写一个 OpenCL 内核 它将涉及求解线性系统 目前我的内核太慢了 提高线性系统部分的性能似乎是一个不错的起点 我还应该注意 我并没有尝试使我的线性求解器并行 我正在研究的问题在宏观层面上已经是令人尴尬的并行 以下是我编写的 C
  • 在 Linq 查询中使用动态列名称

    foreach Dimension dimensions in Enum GetValues typeof Dimension var r new ReferenceTable dimensions referenceItems List
  • 如何解析多态 JSON 数组?

    我有一个 JSON 格式的文件 其中包含个人用户的记录 一些用户的记录中间有一个评论字段 我只想解析顶级项目 全名 贡献者姓名 电子邮件 使用 Newtonsoft JSON 解析器 但我似乎无法让它识别单个对象 当我将整个字符串解析为一个
  • 将旧的 Unity 代码升级到 Unity 5

    在触发按钮上播放动画的代码似乎不起作用 我在 Youtube 上看到了一个视频 内容很简单animation Play 它可以在该视频上运行 但我无法让它在我的计算机上运行 我做错了什么还是团结改变了它 请帮助我在网上找不到解决方案 所有
  • 解析连接字符串

    是否有标准库或代码片段可以使用这样的连接字符串获取值 string connstr DataServiceUrl http localhost foo RemoteServerConnection server http localhost
  • 当一对迭代器初始化时,向量是否知道先保留?

    考虑以下代码 struct MyData MyData const BYTE pData size t uSize bucket pData pData uSize std vector
  • 我的代码哪里有泄漏?

    下面是我的代码 它打开一个 XML 文件 old xml 过滤无效字符并写入另一个 XML 文件 abc xml 最后 我将再次加载 XML abc xml 当执行以下行时 出现异常 表示 xml 文件被另一个进程使用 xDoc Load
  • 链接到ntdll.lib并调用ntdll.dll内部的函数

    我最近正在对私有 API 进行一些研究 我尝试调用诸如NtOpenFile在 ntdll dll 中LoadLibrary and GetProcAddress在运行时 幸运的是 它成功了 今天早上我在电脑上进行了文件搜索 发现ntdll
  • 如何在 stl 模板中使用导出类 (__declspec(dllexport))?

    我正在使用导出的类 class declspec dllexport myclass private template declspec dllexport class std map
  • 使用 DataGridViewCheckboxCell 真正禁用 DataGridView 中的复选框

    有谁知道如何使用 DataGridViewCheckboxCell 禁用 DataGridView 中的复选框 我可以将其设置为只读 并设置背景颜色 但我无法让复选框本身显示为禁用状态 有什么想法吗 Guess 你必须自己画 http so
  • 小数精度

    我使用小数类型进行高精度计算 货币 但我今天遇到了这个简单的划分 1 1 37 这应该再次得到 37 http www wolframalpha com input i 1 2F 281 2F37 29 http www wolframal
  • 为什么 INT64_MIN 的定义不同?为什么他们的行为不同?

    The stdint h我公司的标题是 define INT64 MIN 9223372036854775808LL 但在我项目的一些代码中 一位程序员写道 undef INT64 MIN define INT64 MIN 92233720

随机推荐

  • java.lang.NoSuchFieldError:android.support.v7.appcompat

    我将我的支持库从 r20 更新到了 r21 现在当我运行我的应用程序时 我收到此错误super onCreate我的主要活动 java lang NoSuchFieldError android support v7 appcompat R
  • iOS:将视图转换为圆柱形

    借助 Quartz 2D 我们可以改变对事物的看法x yand z axis 在某些情况下 我们甚至可以通过更改矩阵的值使它们看起来像 3D 我想知道是否可以将视图转换为圆柱体形状 如下图所示 请忽略气缸的顶部 我更好奇是否有可能扭曲UIV
  • Inno Setup:如何处理[UninstallDelete]部分的进度条?

    我使用 Inno Setup 为我的应用程序制作安装程序 当用户卸载应用程序时 我想删除其中的自定义文件夹Program Data文件夹 我的文件夹很大 大约15 GB 所以我使用 UninstallDelete 删除此文件夹的部分 Uni
  • 用于搜索引擎风格搜索的 JavaScript 库? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有一个 JavaScript 库可以确定字符串是否与搜索查询匹配 它应该高效并提供高级查询功能 如
  • 在 JSDoc 中记录开放式参数函数的正确方法

    假设您有如下内容 var someFunc function do something here with arguments 您如何正确记录该函数可以在 JSDoc 中接受任意数量的参数 这是我最好的猜测 但我不确定它是否正确 param
  • 当overflow-x:hidden存在时,overflow-y:visible不起作用[重复]

    这个问题在这里已经有答案了 在 Chrome 或 Firefox 中无法正常工作 有什么解决方法吗 h3 overflow y visible h3 with overflow x hidden div style width 100px
  • 在 PDO 准备好的语句中将值传递给 MySQL IN 操作?

    我有一个表单字段 它返回一个逗号分隔的字符串 我想将其传递给 PHP PDO MySQL 查询 IN 操作 但 IN 操作要求值以逗号分隔 而不是我的string的分隔值 我该怎么做呢 values POST values 10 5 4 3
  • 加特林 websocket 场景中的状态检查

    我有一个加特林场景 我订阅了一个 websocket 并想要检查传入消息的内部一致性 例如 通过 websocket 发送的消息是
  • Joomla 介绍图片作为阅读更多链接

    我想让 joomla 文章介绍图像的行为类似于阅读更多内容和标题链接 因此 用户单击图像 然后加载文章 我不是 PHP 专家 但也许这是阅读更多链接代码 a href class a
  • Google 地图显示“仅用于开发目的”

    当我尝试在网页中显示它时 Google 地图显示消息 仅用于开发目的 我怎样才能让这条消息消失呢 我的代码是这样的
  • 当所有测试在测试项目中运行时管理 Application.Current

    问题介绍 该网站上有几个关于应用 当前当测试的方法 函数包含 Dispatcher 使用时 为 null 问题 第一次我只使用了一个简单的解决方案 我刚刚创建了一个 getter 属性来创建一个new Application 以防止 应用
  • 在 C# 中创建列表的列表

    我似乎在理解 C 中通用列表的通用列表的想法时遇到了一些麻烦 我认为问题源于使用
  • 在 Java 中将 Element(org.w3c.dom) 转换为字符串

    我在将 Element 对象转换为 String 时遇到一个小问题 因为我需要将一个字符串传递给特定的方法 我尝试过使用 toString 或使用分配给它的字符串变量 没有一项试验是正确的 我们怎样才能轻松地进行转换 并且字符串对象还应该显
  • 阻止特定 DIV 的 UI Jquery 插件

    任何人都知道 BlockUI 的 JQuery 插件 它允许阻止特定的 DIV 而不仅仅是整个页面 谢谢 你可以通过blockui http jquery malsup com block element plugin
  • 像素完美的 Android 碰撞检测

    好的 我正在 Android 上开发一款游戏 我需要实现像素完美的碰撞检测 我已经在每个图像周围设置了边界框 每个边界框都经过变换以匹配图像的当前旋转 这一切都很好 我还将每个位图的像素数据存储在数组中 有人可以帮我找出检测像素是否重叠的最
  • 让 CC-Tray 工作

    我正在尝试让 cc tray 工作 而不是使用网络仪表板 我不确定如何获得运行 Cruisecontrol 的服务器的正确 URL 并且在网上找不到任何有用的文档 有人可以帮忙吗 Thanks 我遇到了同样的问题 并解决了在添加服务器 ht
  • “未在此范围内声明”错误

    所以我正在编写这个简单的程序来使用发现的高斯算法来计算任何日期的日期here http en wikipedia org wiki Determination of the day of the week Gaussian algorith
  • Redis 对二级索引的支持

    redis是否支持字符串数据类型的二级索引 我已经安装了 redis 服务器来检查这一点 但无法清楚地找到执行此操作的方法 我想知道如何将数据与辅助密钥一起存储在 Redis 中 例如 假设我想存储车辆 ID 注册号 在我的情况下 这将是主
  • 直接应用 numpy 梯度结果与使用 xarray.apply_ufunc 应用的结果之间的差异

    我正在尝试使用 xarray 的apply ufunc包装 numpy 的gradient函数 以便沿一维获取梯度 然而 apply ufunc返回一个与使用的数组形状不同的数组np gradient直接返回 import xarray a
  • C 中构造函数和析构函数的命名约定 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi