Архитектура | Программирование | Профессиональное развитие
Соер.Клуб - https://t.me/soer_live
По всем вопросам писать на @soerdev
Post #2239
12.5K
S0 @softwareengineervlog
Showing posts older than #2240 · Back to latest
Forwarded from SOERDEV | развитие инженеров-программистов


Forwarded from SOERDEV | развитие инженеров-программистов
Forwarded from Иван Черняков. Сразу к делу.
Forwarded from SOERDEV | развитие инженеров-программистов
Forwarded from SOERDEV | развитие инженеров-программистов
if (/0x[0-9a-f]/) {
}if (x => 0) {
} function isValid(value: string | number, options: any, strictness: "strict" | "loose") {
if (strictness === "loose") {
value = +value } return value < options.max ?? 100;
}Здесь будет вот такой порядок: (value < options.max) ?? 100
Если у вас старый TypeScript, то можете проверить и удивиться как мелкие опечатки могут изменить логику программы. А вот в новой версии будет ошибкаerror: This kind of expression is always truthy.
Forwarded from SOERDEV | развитие инженеров-программистов

Forwarded from SOERDEV | развитие инженеров-программистов


int callme() {
return 1;
}
void main() {
callme();
}gcc -g -o output.s -masm=intel -fno-verbose-asm -S -fdiagnostics-color=always example.c
callme:
push rbp
mov rbp, rsp
mov eax, 1
pop rbp
ret
main:
push rbp
mov rbp, rsp
mov eax, 0
call callme
nop
pop rbp
ret
mov eax,1push rbp; инструкция push сохраняет в стеке значение rbp
mov rbp, rsp; копирует значение регистра указателя вершины стека (открытие кадра стека)
sub rsp, xx; выделяем память под локальные переменные
mov rsp, rbp
pop rbp
ret
sub rsp, xx, все дело в том, что у процессоров есть оптимизация, которая называется red zone, в данном случае - область размером 128 байт которая находится за пределами RSP и не должна изменяться обработчиками сигналов и прерываний.char a[128]; в код функции callme и посмотреть что будет.Forwarded from SOERDEV | развитие инженеров-программистов