powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Размерность структур в с++ BUILDER6.0.
10 сообщений из 10, страница 1 из 1
Размерность структур в с++ BUILDER6.0.
    #34373368
MYTH777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть структура
struct a{
{
int b;
}
}

в BUILDER её размер отличается от размера этой же структуры, но слинкованной в VISUAL C++
как с этим бороться? Прикол в том что когда структуры вложенные, то их размер почему то увел-ся.
Т.Е. размер
struct a{
{
int b;
}
}

ОТЛИЧАЕТСЯ ОТ
struct a{
int b;
}

МОЖЕТ опция есть какая нибудь в BUILDER
...
Рейтинг: 0 / 0
Размерность структур в с++ BUILDER6.0.
    #34373485
roman10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, во первых, конструкция
Код: plaintext
1.
2.
3.
4.
5.
struct a{
{
int b;
}
}
с точки зрения синтаксиса неверна. Непонятно, как вы тогда сравнивали.

Во вторых, на размерность влияет выравнивание. Управляется директивой #pragma pack.
...
Рейтинг: 0 / 0
Размерность структур в с++ BUILDER6.0.
    #34374919
MYTH777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вы меня может не поняли :
Имеется три структуры
struct a {
int zzz;
}
struct b {
{
int zzz;
}
}
struct c {
{
{
int zzz;
}
}
}
В итоге:

sizeof(a) не равна sizeof(b)
sizeof(a) не равна sizeof(c)
sizeof(b) не равна sizeof(c)

И чё делать???? Почему размер структур не совпадает????
...
Рейтинг: 0 / 0
Размерность структур в с++ BUILDER6.0.
    #34375084
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MYTH777Вы меня может не поняли :
Имеется три структуры
struct a {
int zzz;
}
struct b {
{
int zzz;
}
}
struct c {
{
{
int zzz;
}
}
}
В итоге:

sizeof(a) не равна sizeof(b)
sizeof(a) не равна sizeof(c)
sizeof(b) не равна sizeof(c)

И чё делать???? Почему размер структур не совпадает????

Что за издевательство над структурами?
...
Рейтинг: 0 / 0
Размерность структур в с++ BUILDER6.0.
    #34375145
roman10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MYTH777Имеется три структуры
struct a {
int zzz;
}
struct b {
{
int zzz;
}
}
struct c {
{
{
int zzz;
}
}
}


Гм... и у вас это дело компилируется? У меня нет. Даже если стандарт С++ допускает такие странные объявления структур (досканально я с ним не знаком), но C и BCB отказываются их принимать.

Как вы вычисляли sizeof()? Приведите полный текст программы.
...
Рейтинг: 0 / 0
Размерность структур в с++ BUILDER6.0.
    #34375751
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MYTH777Есть структура
struct a{
{
int b;
}
}

МОЖЕТ опция есть какая нибудь в BUILDER
Зачем ещё одни скобки внутри структуры?
Точки с запятой нету после обьявления структуры.
Лично у меня компилятор пишет, что

error C2059: syntax error : '{'
error C2334: unexpected token(s) preceding '{'; skipping apparent function body


Обычно делается так
Код: plaintext
1.
2.
3.
struct a{
    int b;
};
Потом, разве есть гарантия что int в C++ и Builder'е одного размера?
...
Рейтинг: 0 / 0
Размерность структур в с++ BUILDER6.0.
    #34376091
Фотография sashka304
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПотом, разве есть гарантия что int в C++ и Builder'е одного размера?
нету гарантии, ее нигде нету, каждый творит по своему
...
Рейтинг: 0 / 0
Размерность структур в с++ BUILDER6.0.
    #34376129
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По сабжу (гипотеза :-)). Если это дело хоть чем-то компилируется, то, наверное, вложенные скобки воспринимаются либо как ещё одна структура, либо nameless union, либо ещё что-нибудь, и тут в дело включается выравнивание, и потому размеры структур не совпадают...
...
Рейтинг: 0 / 0
Размерность структур в с++ BUILDER6.0.
    #34376131
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И ещё. Чтобы размер совпадал с Visual C++, наверное, есть смысл вместо int использовать либо WORD/DWORD либо что-то вроде майкрософтовского __int16/__int32/__int64. И причем с выравниванием по 1 байту. И без загонов с вложенными скобками.
...
Рейтинг: 0 / 0
Размерность структур в с++ BUILDER6.0.
    #34376153
Фотография sashka304
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
точно #pragma pack 0 спасет всех :)
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Размерность структур в с++ BUILDER6.0.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]