小编Dam*_*ski的帖子

K&R 示例中显示的函数指针的用途是什么

在 K&R ANSI C 书中,我偶然发现了一段代码,其中使用了指向函数的指针。我想我理解函数指针背后的想法,但书中给出的例子对我来说没有意义。

该功能是使用快速排序算法对文本行进行排序。快速排序函数的声明如下所示:

void qsort(void *lineptr[], int left, int right, int (*comp)(void *, void *);
Run Code Online (Sandbox Code Playgroud)

到目前为止,这对我来说非常有意义,我们声明了一个函数,其中一个参数是指向具有两个空指针参数的函数 ( comp) 的指针。我假设我们这样做是为了节省内存,而不是复制实际功能。

稍后在 main 中以这种方式使用该函数:

qsort((void **) lineptr, 0, nlines-1, (int (*)(void*, void*))(numeric ? numcmp : strcmp));
Run Code Online (Sandbox Code Playgroud)

这是我有一些问题的地方:

  1. 为什么被lineptr强制转换为 (void **)
  2. using 的用途是什么(numeric ? numcmp : strcmp),是否意味着也可以像这样分配指向函数的指针:int ( * )(void*, void*) numcmp

编辑:lineptr定义如下:char *lineptr[MAXLINES];我假设我们正在void**将其从 char 转换为类型 void 指针

c pointers function

4
推荐指数
3
解决办法
165
查看次数

如何使用 Angular Material 主题调色板

我对实际开始使用 Angular Material 预装主题有多么困难以及相关教程如此之少感到震惊。我正在尝试使用我的主题中的值,使用官方文档中解释的函数:

https://material.angular.io/guide/theming-your-components

但是,当我尝试运行这段代码时

@use 'sass:map'
@use '@angular/material' as mat

@import './styles/normalize.css'
@import 'ag-grid-community/styles/ag-grid.css'
@import 'ag-grid-community/styles/ag-theme-material.css'
Run Code Online (Sandbox Code Playgroud)

$my-palette: mat.define-palette(mat.$primary-palette)

我收到 SASS 错误,提示 $theme 未定义。错误在哪里?

sass angular

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

标签 统计

angular ×1

c ×1

function ×1

pointers ×1

sass ×1