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

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

22.11.2008, 23:48
|
|
Banned
Регистрация: 07.11.2007
Сообщений: 301
С нами:
9741926
Репутация:
595
|
|
Сообщение от ToniKapuchon
точка входа в программу функция main(), а vaild ето тип возращаемый ОС тип.... первый раз вижу vaild - где ты ето увидел?
У препода на доске.
|
|
|

21.11.2008, 02:42
|
|
Познающий
Регистрация: 29.01.2008
Сообщений: 82
С нами:
9622901
Репутация:
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
С нами:
10074686
Репутация:
1204
|
|
Почему размер структуры 4 если (чар -1баит и шорт-2байта) должен быть 3 байта.
Видимо выравнивание вступает в ход.
Лишний байт виден при печати структуры (второй - 0хСС)
как от него избавится?
Очищать память, CC - мусор.
|
|
|

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

21.11.2008, 16:19
|
|
Участник форума
Регистрация: 20.12.2007
Сообщений: 295
С нами:
9679872
Репутация:
347
|
|
Сообщение от Smapt
Если я правильно понимаю после очистки мамяти будет 31 00 32 00, я прав? Мне же необходимо от "лишнего" байта избавится, т.е. структура должна быть размером именно 3 байта.
Для того чтобы включить выравнивание по границе байта нужно сделать
#pragma pack(push, 1)
тут структура
#pragma pack(pop)
|
|
|

21.11.2008, 03:38
|
|
Постоянный
Регистрация: 13.02.2007
Сообщений: 406
С нами:
10126406
Репутация:
206
|
|
нужно прочесть данные из реестра, тип данных REG_SZ, компилиться без ошибок, но в буфере(Reget) где должны быть данные пусто
часть кода
Код:
HKEY hKey;
RegOpenKeyExA(HKEY_LOCAL_MACHINE,"SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\Interfeaces\\{2BF69BB5-EB8E-48CE-8D1F-FA2CCF27B}", 0, KEY_READ, &hKey);
char Reget[64];
DWORD RegetPath = sizeof(Reget);
DWORD type = REG_SZ;
RegQueryValueExA(hKey, "DhcpIPAddress", NULL, &type, (PBYTE)Reget, &RegetPath);
RegCloseKey(hKey);
printf(Reget);
|
|
|

21.11.2008, 11:04
|
|
Познающий
Регистрация: 12.12.2007
Сообщений: 81
С нами:
9691420
Репутация:
53
|
|
Svarog попробуй вместо &type влепить 0 , у меня работало так
|
|
|

21.11.2008, 12:52
|
|
Познающий
Регистрация: 14.11.2007
Сообщений: 68
С нами:
9732478
Репутация:
8
|
|
Сообщение от ToniKapuchon
void func(int p=1;int p1=2)
{
}
в компосере непашет такого вида конструкция нехочет компилить
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|