Re[4]: Несколько замечаний по поводу качества кода
От: EreTIk EreTIk's Box
Дата: 20.11.15 15:26
Оценка:
TSS>Да, вероятно я не прав насчет стандарта. Тем не менее, по умолчанию компилятор всегда лепит пролог, если явно не указать ему этого не делать. В сорцах win10 видимо явно указана директива __declspec(naked).

Думаю, что дело в версии и/или настройках компилятора. Пример:
void (*g_pFunc)() = nullptr;

extern "C"
__declspec(dllexport)
void f()
{
    g_pFunc();
}


>cl /O2 /Zi /MTd /EHsc test.cpp /link /RELEASE /OPT:REF
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.01 for 80x86
Copyright (C) Microsoft Corporation.  All rights reserved.

test.cpp
Microsoft (R) Incremental Linker Version 9.00.30729.4999
Copyright (C) Microsoft Corporation.  All rights reserved.

/out:test.exe
/debug
/RELEASE
/OPT:REF
test.obj
   Creating library test.lib and object test.exp


f:         FF25C03F4200                   jmp          d,[000423FC0]
.00401006: CCCCCCCCCCCCCCCCCCCC           int          3
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.