169 похожих чатов

Every now and then I remember that C has function

pointers and I just wonder why. It’s like the least ergonomic language feature I think I’ve ever seen, and never once have I seen them used without it feeling like a super alien kludge. I’d use flag bit packing bullshit too if function pointers were the option I had for injecting one function into another.

And like they’re this obnoxious to use and yet they have to be a designed feature right? It’s not obvious that you should be able to address a function, and there’s specific syntax for it, so someone must have sat down at some point and said “yes, this is how function pointers should work”

10 ответов

3 просмотра

Why is it unergonomic? And why is it unobvious that functions should be addressable

callbacks ig?

Thomas
Why is it unergonomic? And why is it unobvious th...

i understand the hate for asterisks, assembly uses square brackets for pointers and honestly its way easier to comprehend visually at first

Thomas
Why is it unergonomic? And why is it unobvious th...

im not a c dev but i think that's the only way to use callbacks, right?

demon with L
im not a c dev but i think that's the only way to ...

Well a callback must be passed as an argument

Lanny- Автор вопроса
Thomas
Why is it unergonomic? And why is it unobvious th...

The syntax is p funky imo, I mean you need something but why the extra parens? Why the asterisk on the identifier and not after the arg list? That’s mostly a taste thing but it does feel kludgy compared most the rest of the language and it’s something I always have to look up. More substantially, you can’t dereference a function pointer and expect anything meaningful to result, so the most fundamental operation of a pointer is basically unused. Pointer arithmetic doesn’t really work either, since depending on architecture a function pointer is not necessarily in the same address space as data. So I guess my complaint is that a function pointer is basically not a pointer, imo defining an opaque func_t or something and an apply function or built in would have been preferable

Lanny
The syntax is p funky imo, I mean you need somethi...

You'd love learning about execution tokens in Forth

Lanny
The syntax is p funky imo, I mean you need somethi...

Syntax stuff I was expecting, but the pointer operation stuff makes sense too

Lanny
The syntax is p funky imo, I mean you need somethi...

I guess you could have a separate "function address" type entirely

Похожие вопросы

Обсуждают сегодня

Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
48
Всем привет! Скажите, никто не пытался уменьшить размер процесса ssl, которые ассоциируется с открытым соединением (не помню точное название этого процесса, но там была какая-...
Алексей
20
а проверьте, собирается ли у кого сейчас транк лазаря через делюкс? у меня вот: fpcupdeluxe: info: Lazarus Native Installer (BuildModuleCustom: UserIDE): LazBuild: building Us...
Iluha Companets
20
Мне тут приспичило встроить в программу форматировние текста SQL, расставить переносы строк и отступы так, чтобы лучше читалось. Я что-то свое изобразил, оно после ключевых сл...
Sergey Bodrov
11
This is a big issue. Just by being a citizen of a country, you are denied to contribute to Open Source software: https://youtu.be/L5Ec5jrpLVk?si=1iIuHnMPbCB4anV-
Sharuzzaman Ahmat Raslan
72
добрый день. возможно ли изменить цвет окон лазаруса? Как?
Budemposmotret
35
Господа, а кто-нибудь сталкивался с размещением на TTabControl/TTabSheet множества контролов (> 100) с последующими External: Access violation? Вот буквально на ровном месте. ...
Dmitry
29
А какие существуют способы обработки ошибок выделения памяти в ядре? Т.е., допустим, есть функция, которая возвращает адрес свободной страницы в физической памяти и диапазон в...
disba1ancer
51
Добрый день. Опять снова хочу обратиться к вам за помощью. После создания проэкта stack new, lazy.nvim + nvim-lspconfig/haskell-tools + hlint, ormolu из mason + hls из ghcup ...
Nannk
8
Does anyone have some zeroday's left?
Wito!d ♥️🩷
44
Карта сайта