- Код: Выделить всё
fo0$, bar@, baaz!, test#, kai%, boom&
fo0$, bar@, baaz!, test#, kai%, boom&
Ну да, но это уже красатулинка (как и разборки с константой, как мне кажется). Я же про прЫнцип вопрошаю: есть тут грабли али нету?iGrok писал(а):Наверное, ещё можно заюзать PutMem1 и PutMem8 вместо CopyMemory.
'Помним, что раз числа беззнаковые, то отрицательные больше положительных, а самое большое -1
Do
If H1 > H2 Then
' если различаются знаком, то результат сравнение делаем обратным
If (H1 < 0) Xor (H2 < 0) Then comp = -1 Else comp = 1
Exit Do
ElseIf H1 < H2 Then
If (H1 < 0) Xor (H2 < 0) Then comp = 1 Else comp = -1
Exit Do
End If
' если не вышли из ду, значит верхние лонги равны и нужно сравнить нижние
If L1 > L2 Then
If (L1 < 0) Xor (L2 < 0) Then comp = -1 Else comp = 1
ElseIf L1 < L2 Then
If (L1 < 0) Xor (L2 < 0) Then comp = 1 Else comp = -1
End If
Loop While 0
Кстати, я не совсем понимаю смысл использования TDC. Мы же всё равно копируем один байт. А TDC для байта нет. Т.е. всё равно придётся объявлять минимум Integer, а 14 и без TDC - Integer. Нет?
Dim b(15) As Byte
CopyMemory b(0), -1, 16
Stop' смотрим, что накопировалось в массив
Dim b(15) As Byte
Const v As Variant = -1
CopyMemory b(0), v, 16
Stop
iGrok писал(а):Или всё-таки так оно и есть, а то, что получилось у arthur2 - это просто компилятор "случайно" "прооптимизировал" выражение?
Dim x As Variant, y As Variant
x = 30000
y = 30000
Caption = x + y
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 45