Перейти к содержанию

Лидеры

Популярный контент

Показан контент с высокой репутацией 23.04.2011 во всех областях

  1. а вот и код: //Определение классов и структур struct SomeStruct { int classData; void structMethod(); }; class SomeClass { int structData; public: void classMethod(); }; void SomeStruct::structMethod() { } void SomeClass::classMethod() { } void StructFunction(SomeStruct* testStruct) { } void ClassFunction(SomeClass* testObject) { }; //Дизассемблер testStruct->structMethod(); 0040168A 8B 4D F4 mov ecx,dword ptr [ebp-0Ch] 0040168D E8 4E FE FF FF call SomeStruct::structMethod (4014E0h) testObject->classMethod(); 00401692 8B 4D E8 mov ecx,dword ptr [ebp-18h] 00401695 E8 76 FE FF FF call SomeClass::classMethod (401510h) StructFunction(testStruct); 0040169A 8B 45 F4 mov eax,dword ptr [ebp-0Ch] 0040169D 50 push eax 0040169E E8 9D FE FF FF call StructFunction (401540h) 004016A3 83 C4 04 add esp,4 ClassFunction(testObject); 004016A6 8B 45 E8 mov eax,dword ptr [ebp-18h] 004016A9 50 push eax 004016AA E8 C1 FE FF FF call ClassFunction (401570h) 004016AF 83 C4 04 add esp,4 Как видим, экземпляры классов и структур не отличаются ни в дизассемблере, ни в исходнике. (не считая ключевого слова public в определении класса). это в MSVS 2008 без оптимизации. в других компиляторах с другими параметрами может быть и по-другому
    1 балл
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.