Вы были правы в своей интерпретации. Вот другой способ посмотреть на него:
const MyStructure * *ppMyStruct; // ptr --> ptr --> const MyStructure
MyStructure *const *ppMyStruct; // ptr --> const ptr --> MyStructure
MyStructure * *const ppMyStruct; // const ptr --> ptr --> MyStructure
Это все альтернативы для от указателя к указателю с одним спецификатором константы. Справа налево правило может использоваться для дешифровки объявлений (по крайней мере, в C++; я не эксперт C).
GIMP 2.6.6 Windows Vista SP2
Извлечь базовое имя исходного имени файла без его расширения.
Ошибка: eval: несвязанная переменная: re-match-nth
Меню GIMP " Фильтры "> " Script-Fu "> " Консоль "
В поле ввода вставьте следующее определение функции Script-Fu. затем нажмите кнопку ENTER :
(define (filename-basename orig-name)
(car (strbreakup orig-name "."))
; Nimmzo 09/09/30: the string split function strbreakup is defined
; in the compatibility file from SIOD to TinyScheme:
; C:\Program Files\GIMP\share\gimp\2.0\scripts\script-fu-compat.init
) ; end filename-basename
Чтобы проверить функцию, введите:
(filename-basename "screen.xcf")
Консоль Script-Fu отвечает:
"screen"
Не совсем правильное решение:
> (filename-basename "this.is.a.long.filename.jpg")
"this"
Лучшая реализация:
(define (morph-filename orig-name new-extension)
(let* ((buffer (vector "" "" "")))
(if (re-match "^(.*)[.]([^.]+)$" orig-name buffer)
(string-append (substring orig-name 0 (car (vector-ref buffer 2))) new-extension)
)
)
)