/ * Каталог: код , чтобы проверить два принципа компиляции три пародии функции * /
Испытательный код
INT основных () { Int я = 3 ; INT к = 0 ; INT т = 0 ; к = ++ я; Е ( " к =% ди =% d \ п " , к, I); м = я ++ ; Е ( " м =% ди =% d " , т, I); вернуться 0 ; } / * // результат к = 4 я = 4 м = 4 я = 5 * /
Два принципа компиляции
к = ++ я ; 00044E63 мы EAX, DWORD PTR [я] 00044E66 добавить EAX, 1 00044E69 мов DWORD PTR [I], EAX 00044E6C мы ECX, DWORD PTR [I] 00044E6F мов DWORD PTR [K], ECX т = ++ ; 00044E87 мы EAX, DWORD PTR [I] 00044E8A мов DWORD PTR [м], EAX 00044E8D мы ECX, DWORD PTR [я] 00044E90 добавить ECX, 1 00044E93 мов DWORD PTR [I], ECX
Функция Три пародии
# include " stdafx.h " INT FirstPlus ( INT * пинта) { * Pint = * пинта + 1 ; вернуться * пинта; } INT AfterPlus ( INT * пинта) { INT nReturn = 0 ; nReturn = * пинта; * Pint = * пинта + 1 ; вернуться nReturn; } INT основных () { Int я = 3 ; INT к = 0 ; ИНТт = 0 ; Е ( " к =% ди =% d \ п " , к, I); K = FirstPlus (& я); Е ( " к =% ди =% d \ N \ N " , к, I); Е ( " м =% ди =% d \ п " , т, I); м = AfterPlus (& я); Е ( " м =% ди =% d " , т, I); вернуться 0 ; } / * // результат к = 0 я = 3 к = 4 я = 4 м = 0 я = 4 м = 4 я = 5 * /