Size: a a a

Генератор непрочитанных сообщений

2020 May 08

AK

Alexander Kladov in Генератор непрочитанных сообщений
а функции меняются что-ли
источник

AK

Alexander Kladov in Генератор непрочитанных сообщений
Dmitriy Tkachenko
Просто они раскрываются до компиляции
раскрылся этот макрос во время компиляции, что мне это дало?
источник

DT

Dmitriy Tkachenko in Генератор непрочитанных сообщений
Alexander Kladov
тем что не меняются
Еслм в сях, то константы заменяются значениями на этапе препроцессинга
источник

DT

Dmitriy Tkachenko in Генератор непрочитанных сообщений
Alexander Kladov
раскрылся этот макрос во время компиляции, что мне это дало?
Если ты хочешь инлайнить например код, а у тебя нет такой инструкции в языке
источник

AK

Alexander Kladov in Генератор непрочитанных сообщений
Dmitriy Tkachenko
Если ты хочешь инлайнить например код, а у тебя нет такой инструкции в языке
можешь на примере показать ?
источник

A

Aleksandr Khristenko in Генератор непрочитанных сообщений
Alexander Kladov
можешь на примере показать ?
объявляем
macros test($someValue) {
 if (...) then return1;
 elseif (...) then return 2;
 elseif (...) then return 3;
}
и в моменте вызова test!(...) оно по сути в момент компиляции заменяется на эту цепочку if
на функциях такое не сделать
источник

DT

Dmitriy Tkachenko in Генератор непрочитанных сообщений
тот же sum(a, b) { a + b }, если у тебя критичное время исполнение, то вынос в функцию, это джампы, дергания стека и обратные джампы. А если ты инлайнишь, то та же операция получается сразу, т.к. a + b подставляется вместо функции
источник

AK

Alexander Kladov in Генератор непрочитанных сообщений
а если отбросить скорость, есть какие-то еще плюсы у макросов по сравнению с функцией?
источник

A

Aleksandr Khristenko in Генератор непрочитанных сообщений
Alexander Kladov
а если отбросить скорость, есть какие-то еще плюсы у макросов по сравнению с функцией?
Ты мои сообщения игнорируешь =\
источник

DT

Dmitriy Tkachenko in Генератор непрочитанных сообщений
дык это и есть функции же)
источник

AK

Alexander Kladov in Генератор непрочитанных сообщений
Aleksandr Khristenko
Ты мои сообщения игнорируешь =\
я не игнорирую, я пытаюсь их понять
источник

DT

Dmitriy Tkachenko in Генератор непрочитанных сообщений
просто предподсчитанные
источник

AK

Alexander Kladov in Генератор непрочитанных сообщений
но пока тяжело
источник

P

Panda🤔 in Генератор непрочитанных сообщений
Alexander Kladov
но пока тяжело
функция уводит поинтер вглубь функции
источник

DT

Dmitriy Tkachenko in Генератор непрочитанных сообщений
они вставляют в твой код результат выполнения перед передачей на компиляцию
источник

P

Panda🤔 in Генератор непрочитанных сообщений
макрос раскрывается тупо там где объявлен
источник

AK

Alexander Kladov in Генератор непрочитанных сообщений
Aleksandr Khristenko
объявляем
macros test($someValue) {
 if (...) then return1;
 elseif (...) then return 2;
 elseif (...) then return 3;
}
и в моменте вызова test!(...) оно по сути в момент компиляции заменяется на эту цепочку if
на функциях такое не сделать
что мне дает то что у меня физически не будет функции, а будут ифы на этом месте?
источник

A

Aleksandr Khristenko in Генератор непрочитанных сообщений
Alexander Kladov
что мне дает то что у меня физически не будет функции, а будут ифы на этом месте?
Меньше писать.
источник

AK

Alexander Kladov in Генератор непрочитанных сообщений
Aleksandr Khristenko
Меньше писать.
но я ведь делаю аналогичную функцию с ифами и вызываю ее, в итоге тоже меньше пишу
источник

A

Aleksandr Khristenko in Генератор непрочитанных сообщений
Alexander Kladov
но я ведь делаю аналогичную функцию с ифами и вызываю ее, в итоге тоже меньше пишу
Покажи как. Ибо функция такое не может, если нет инлайна.
источник