Из int в четыре байта покрасивее
![](/images/graemlins/smile.gif)
#include <iostream>
int main {
for (int i = 0x80000002; i <= 0x80000004; i++) {
char s[17]={0};
__asm {
mov eax, i
cpuid
mov DWORD PTR s, eax
mov DWORD PTR s+4, ebx
mov DWORD PTR s+8, ecx
mov DWORD PTR s+12, edx
}
std::cout<<s;
}
}
Интересно, это провокационный пост? Ты вроде в холиварах участвовал?
Что означает
char s[17]={0};
?
Интересно, это провокационный пост? Ты вроде в холиварах участвовал?
![](/images/graemlins/grin.gif)
![](/images/graemlins/grin.gif)
![](/images/graemlins/grin.gif)
Нет, не провокационный.
Ну да, да, участвовал. Подмывает иногда открыть кому-нибудь глаза на то, как всё просто на самом деле, или поставить какого-нибудь сноба на место.
Here, the compiler will use the first initializer for the first array element, and then use zero for all the elements without initializers. Notice this initialization behavior doesn’t occur if you define an array without a list of initializers. So the expression above is a succinct way to initialize an array to zero, without using a for loop, and without any possibility of an off-by-one error (Depending on the compiler, it may also be more efficient than the for loop.)
Это означает, что надо забить массив нулями (если стоит инициализатор недостаточной длины, всё остальное заполняется 0). А требуется на самом деле только s[16]=0.
Поищи сам. Тебе все карты в руки уже дали. Если я буду искать, то просто буду делать за тебя твою работу (искать стандарт, искать в стандарте про это).
Я ужасТно тупой, но чем в данном случае использование массива лучше юниона или реинтерпрет-каста?
если мы будем искать решение твоей проблемы, то просто будем делать за тебя твою работу
Оставить комментарий
enochka1145
Что-то я устал тупить над одной банальностью. Всего надо-то, узнать, как процессор себя величает. Это можно узнать так (VS2003): Задачка: как написать то же самое попроще и покрасивше? Устроим конкурс?Интересует исключительно работающий код. Если кто-то хочет только сказануть "юзай union" или "касты рулят", сразу свободен.