Re[19]: Бинарная склейка
От: romangr Россия  
Дата: 25.01.17 06:26
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>Здравствуйте, vdimas, Вы писали:


V>>Вот простой пример


Q>Не наблюдаю такого в отладчике после лёгкой модифиации кода:

Q>
#include <vector>

Q>int main()
Q>{
Q>    std::vector<char> chars;
Q>    std::vector<double> doubles;

Q>    chars.push_back(1);
Q>    doubles.push_back(1);

Q>    return 0;
Q>}


Q>
    chars.push_back(1);
Q>00CE107B  push        eax  
Q>00CE107C  lea         ecx,[chars]  
Q>00CE107F  mov         byte ptr [ebp-29h],1  
Q>00CE1083  call        std::vector<char,std::allocator<char> >::emplace_back<char> (0CE12F0h)  
Q>    doubles.push_back(1);
Q>00CE1088  movsd       xmm0,mmword ptr [__real@3ff0000000000000 (0CE31A8h)]  
Q>00CE1090  lea         eax,[ebp-34h]  
Q>00CE1093  push        eax  
Q>00CE1094  lea         ecx,[doubles]  
Q>00CE1097  movsd       mmword ptr [ebp-34h],xmm0  
Q>00CE109C  call        std::vector<double,std::allocator<double> >::emplace_back<double> (0CE1220h)


У char и double размер разный, а у float и int одинаковый.
Поэтому и код для float-int одинаковый, а для char-double разный.
... << RSDN@Home (RF) 1.2.0 alpha 5 rev. 67>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.