char* ReadNumericFormat = "%i";
int Read(void)
{
int Storage;
__asm
{
LEA EAX, [Storage]
PUSH EAX
PUSH DWORD PTR [ReadNumericFormat]
CALL DWORD PTR [scanf]
ADD ESP, 8
MOV EAX, DWORD PTR [Storage]
}
}
사용자가 "023919"를 입력하면 절차는 19를 반환합니다.
이것은 기능입니까, 아니면 어둠이 표준입니까?scanf 결과가 사용자 입력과 다른 이유는 무엇입니까?
한 줄의 C 코드를 바꾸기 위해 인라인 어셈블러를 사용하고 있습니까? 어쨌든 이것은 인라인 어셈블러를 배우는 연습이거나, 최적화에 대해 배워야합니다. :-) –
@ Paul Tomblin : 코드 바이트를 줄이려고합니다. – Behrooz
그 경우에는 옵션 2입니다. –