c - 为什么要通过指针传递给 C 函数?
问题描述
我看到一些代码通过指针传递一些结构到一个不会改变指针指向的值的函数,比如这个:
typedef struct __spi_handle_t {
uint16_t TxXferSize; /* SPI Tx transfer size */
uint16_t RxXferSize; /* SPI Rx transfer size */
uint16_t RxXferCount; /* SPI Rx Transfer Counter */
} spi_handle_t;
void hal_spi_init(spi_handle_t *spi_handle);
这样做有什么意义,而不仅仅是按价值传递?
解决方案
结构可能非常大,因此尝试按值传递它们可能会导致效率低下。
通过将指针传递给结构,它将开销减少到只有一个指针。
推荐阅读
- formatting - 在任意两种不同格式之间转换消息
- javascript - 注册时突变返回 null
- php - 使用 Laravel 对 API 的 http 地址的 HTTP 请求
- r - for循环中的Textplot并向绘图添加描述
- css - 如何在纯 CSS 中使颜色变深?
- powershell - 无法从 PowerShell 中的路径获取子字符串
- excel - 按标题合并 Excel 列
- javascript - 嵌入 XSLT 时出现 Jscript 错误 - 对象不支持此属性或方法
- python - 如何跨多个节点使用 mpi4py 发送数据?
- javascript - discord.js 中的 overwritePermissions 是否会公开文本通道?