Re[7]: Несколько замечаний по поводу качества кода
От: TSS_TSS http://kitrap08.blogspot.com/
Дата: 20.11.15 16:42
Оценка:
Здравствуйте, EreTIk, Вы писали:


ETI>>>Думаю, что дело в версии и/или настройках компилятора. Пример:

ETI>>>
ETI>>>void (*g_pFunc)() = nullptr;

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


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

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

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


ETI>>>
ETI>>>f:         FF25C03F4200                   jmp          d,[000423FC0]
ETI>>>.00401006: CCCCCCCCCCCCCCCCCCCC           int          3
ETI>>>


TSS>>Это безусловно зависит от компилятора, но все таки мы говорим про windows, а она использует микрософтовский компилятор. Соответственно, с прологом там все более менее понятно. Хотя признаться, я не знаю как с этим дела в последних версиях компиляторов.


ETI>Так мой пример тоже построен на кодо-генерации MS'овских компилятора и линкера (не самых свежих — Microsoft Visual Studio 9.0).

ETI>Мой посыл был в том, что старый компилятор, которым собирали XP, мог оставлять пролог из-за недоработки или специфических опций.

Упс, совсем я плохой стал, мне почему-то почудился gcc. Тогда да, видимо дело в компиляторе (версии или настройках).
http://kitrap08.blogspot.com/
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.