Войти
ПрограммированиеФорумОбщее

Visual Studio 2008 (комментарии) (5 стр)

Страницы: 1 2 3 4 5
#60
12:08, 1 авг 2007

Lion007
>с третьим параметром - беда, однако
потому что в рамках calling convention нельзя организовать padding между параметрами

#61
12:14, 1 авг 2007

Конишуа
дык я и не спорю... но хоть бы предупредили!
а вообще - мура все это... после первого же падения в этом месте стало бы ясно где чего поправить. это я все к тому, что можно же выровненые параметры передавать! но МС как всегда поленился...

#62
12:48, 1 авг 2007

Lion007
> про 2003 ничего не скажу - под руками нет
> gcc сожрал. и, насколько я могу судить по ассемблерному коду - таки выровнял на стеке...
Я сейчас вспомнил, я не пробовал передавать выровненную структуру как параметр функции, так что возможно это и в VS2003 никогда не работало.
А что, gcc прожевывает __declspec(align(...))???.... я радуюсь, что именно его использую 8)
> с третьим параметром - беда, однако
Хоть так... я всёравно радуюсь :)  .... хотя и незнаю, нужно-ли мне это...

#63
12:51, 1 авг 2007

Lion007
> с третьим параметром - беда, однако
Хотя, выравнивание с помощью пустоты всегда не есть гуд, я всегда пытаюсь (там где нужно) расставить элементы в оптимальном порядке, чтобы выравнивание получалось с минимумом пустого пространства. А здесь спасибо за инфу, буду знать как выравнивать параметры функции.

#64
12:52, 1 авг 2007

progmachine
именно __declspec(align(N)) гцц не очень любит, но он прожевавает __attribute__((aligned(N))) - это его родное...
так что дефайн типа ALIGNED(N) тебя спасет.

кстати, во время похода за пивом пришла вголову мысль - откуда может взяться требование на непрерывность параметров ф-ии в стеке...
например - из-за ... (всмысле три точки - переменный список параметров). va_arg достает их подряд...
хотя по-прежнему остаюсь при мнении, что компилятор мог бы и предупредить о том, что "вот это я выровнять не смог, хоть и пытался".

#65
16:32, 1 авг 2007

О великие гуру СыПыПы! Объясните ламеру простыми словами, зачем нужна __declspec(align(N)). Укажите ПРАКТИЧЕСКОЕ применение.

#66
16:35, 1 авг 2007

SlavaGorbacheff
>О великие гуру СыПыПы! Объясните ламеру простыми словами, зачем нужна
>__declspec(align(N)). Укажите ПРАКТИЧЕСКОЕ применение.
Выравнивание объектов на правильные адреса. На PC встречается редко. В основном, если вручную работать с DMA, что уже большая редкость :) или с переменными типа __m128.
На консолях встречается сплошь и рядом, с выравниванием от 4 байт до 64 кб.

#67
8:50, 2 авг 2007

dDIMA
Спасибо.

#68
16:30, 3 авг 2007

скажиет а Visual Studio 2008 от 2005 сильно отличается?? и Visual basic?

Страницы: 1 2 3 4 5
ПрограммированиеФорумОбщее

Тема в архиве.