ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

20.11.2008, 18:25
|
|
Познающий
Регистрация: 14.11.2007
Сообщений: 68
Провел на форуме: 113757
Репутация:
8
|
|
Как мне сделать функцию с параметрами но при этом если параметры незадавать выполнялись параметры по умолчанию
|
|
|

20.11.2008, 18:27
|
|
Участник форума
Регистрация: 26.02.2006
Сообщений: 209
Провел на форуме: 2418438
Репутация:
93
|
|
void func(int p=1;int p1=2)
{
}
Не уверен!
|
|
|

20.11.2008, 18:34
|
|
Постоянный
Регистрация: 08.05.2006
Сообщений: 816
Провел на форуме: 1845671
Репутация:
1338
|
|
groupby Ну не знаю  )) Я конечно не настаиваю, но вроде такое заметил на Borland C++...
Последний раз редактировалось GlOFF; 20.11.2008 в 18:36..
|
|
|

20.11.2008, 19:28
|
|
Участник форума
Регистрация: 20.12.2007
Сообщений: 295
Провел на форуме: 1777055
Репутация:
347
|
|
2 NetSter
Не используй инструкцию lea
вместо lea esi, mas
напиши mov esi, mas
- так будет правильно. Компилятор это превратит примерно в следующее:
mov esi, DWORD PTR [ebp+8]
то есть занесение в esi содержимого параметра mas и это есть правда.
P.S.
а когда ты вместо mov пишешь lea получается:
lea esi, DWORD PTR [ebp+8]
что есть занесение в esi адреса переменной mas, что тебе совсем не нужно
Последний раз редактировалось bons; 20.11.2008 в 20:02..
|
|
|

20.11.2008, 19:28
|
|
Постоянный
Регистрация: 04.11.2007
Сообщений: 303
Провел на форуме: 811764
Репутация:
119
|
|
Сообщение от Diablo@Dragon
Как мне сделать функцию с параметрами но при этом если параметры незадавать выполнялись параметры по умолчанию
Можно внутри функции сделать проверку на наличие параметров.
|
|
|

21.11.2008, 02:00
|
|
Banned
Регистрация: 07.11.2007
Сообщений: 301
Провел на форуме: 3428344
Репутация:
595
|
|
Элементарный вопрос. Для чего нужно:
и чем оно отличается от
??
|
|
|

21.11.2008, 02:08
|
|
Участник форума
Регистрация: 26.02.2006
Сообщений: 209
Провел на форуме: 2418438
Репутация:
93
|
|
Сообщение от InfernoNet
Элементарный вопрос. Для чего нужно:
и чем оно отличается от
??
точка входа в программу функция main(), а vaild ето тип возращаемый ОС тип.... первый раз вижу vaild - где ты ето увидел?
|
|
|

21.11.2008, 02:42
|
|
Познающий
Регистрация: 29.01.2008
Сообщений: 82
Провел на форуме: 373690
Репутация:
88
|
|
есть такой код:
Код:
struct abs1
{
unsigned char a; //1-byte
unsigned short b;//2-byte
};
void pr(unsigned char*t)
{
for(int i=0;i<sizeof(t);i++) printf("%x ",t[i]);
}
int main()
{
abs1 test;
test.a = (unsigned char)0x31;
test.b = (unsigned short)0x32;
printf("Struct size: %d\n",sizeof(test));
pr((unsigned char*)&test);
getchar();
return 0;
}
Выводит:
Struct size: 4
31 CC 32 00
Почему размер структуры 4 если (чар -1баит и шорт-2байта) должен быть 3 байта.
Лишний байт виден при печати структуры (второй - 0хСС)
как от него избавится?
|
|
|

21.11.2008, 02:53
|
|
Познавший АНТИЧАТ
Регистрация: 21.03.2007
Сообщений: 1,200
Провел на форуме: 7134052
Репутация:
1204
|
|
Почему размер структуры 4 если (чар -1баит и шорт-2байта) должен быть 3 байта.
Видимо выравнивание вступает в ход.
Лишний байт виден при печати структуры (второй - 0хСС)
как от него избавится?
Очищать память, CC - мусор.
|
|
|

21.11.2008, 03:06
|
|
Познающий
Регистрация: 29.01.2008
Сообщений: 82
Провел на форуме: 373690
Репутация:
88
|
|
Если я правильно понимаю после очистки мамяти будет 31 00 32 00, я прав? Мне же необходимо от "лишнего" байта избавится, т.е. структура должна быть размером именно 3 байта.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|