在 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)
这是我有一些问题的地方:
lineptr强制转换为 (void **)(numeric ? numcmp : strcmp),是否意味着也可以像这样分配指向函数的指针:int ( * )(void*, void*) numcmp编辑:lineptr定义如下:char *lineptr[MAXLINES];我假设我们正在void**将其从 char 转换为类型 void 指针
我对实际开始使用 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 未定义。错误在哪里?