|
|
|
Размерность структур в с++ BUILDER6.0.
|
|||
|---|---|---|---|
|
#18+
Есть структура struct a{ { int b; } } в BUILDER её размер отличается от размера этой же структуры, но слинкованной в VISUAL C++ как с этим бороться? Прикол в том что когда структуры вложенные, то их размер почему то увел-ся. Т.Е. размер struct a{ { int b; } } ОТЛИЧАЕТСЯ ОТ struct a{ int b; } МОЖЕТ опция есть какая нибудь в BUILDER ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 10:13 |
|
||
|
Размерность структур в с++ BUILDER6.0.
|
|||
|---|---|---|---|
|
#18+
Ну, во первых, конструкция Код: plaintext 1. 2. 3. 4. 5. Во вторых, на размерность влияет выравнивание. Управляется директивой #pragma pack. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 10:42 |
|
||
|
Размерность структур в с++ BUILDER6.0.
|
|||
|---|---|---|---|
|
#18+
Вы меня может не поняли : Имеется три структуры struct a { int zzz; } struct b { { int zzz; } } struct c { { { int zzz; } } } В итоге: sizeof(a) не равна sizeof(b) sizeof(a) не равна sizeof(c) sizeof(b) не равна sizeof(c) И чё делать???? Почему размер структур не совпадает???? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 15:42 |
|
||
|
Размерность структур в с++ BUILDER6.0.
|
|||
|---|---|---|---|
|
#18+
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) И чё делать???? Почему размер структур не совпадает???? Что за издевательство над структурами? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 16:26 |
|
||
|
Размерность структур в с++ BUILDER6.0.
|
|||
|---|---|---|---|
|
#18+
MYTH777Имеется три структуры struct a { int zzz; } struct b { { int zzz; } } struct c { { { int zzz; } } } Гм... и у вас это дело компилируется? У меня нет. Даже если стандарт С++ допускает такие странные объявления структур (досканально я с ним не знаком), но C и BCB отказываются их принимать. Как вы вычисляли sizeof()? Приведите полный текст программы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 16:38 |
|
||
|
Размерность структур в с++ BUILDER6.0.
|
|||
|---|---|---|---|
|
#18+
MYTH777Есть структура struct a{ { int b; } } МОЖЕТ опция есть какая нибудь в BUILDER Зачем ещё одни скобки внутри структуры? Точки с запятой нету после обьявления структуры. Лично у меня компилятор пишет, что error C2059: syntax error : '{' error C2334: unexpected token(s) preceding '{'; skipping apparent function body Обычно делается так Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 19:34 |
|
||
|
Размерность структур в с++ BUILDER6.0.
|
|||
|---|---|---|---|
|
#18+
авторПотом, разве есть гарантия что int в C++ и Builder'е одного размера? нету гарантии, ее нигде нету, каждый творит по своему ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2007, 00:03 |
|
||
|
Размерность структур в с++ BUILDER6.0.
|
|||
|---|---|---|---|
|
#18+
По сабжу (гипотеза :-)). Если это дело хоть чем-то компилируется, то, наверное, вложенные скобки воспринимаются либо как ещё одна структура, либо nameless union, либо ещё что-нибудь, и тут в дело включается выравнивание, и потому размеры структур не совпадают... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2007, 00:48 |
|
||
|
Размерность структур в с++ BUILDER6.0.
|
|||
|---|---|---|---|
|
#18+
И ещё. Чтобы размер совпадал с Visual C++, наверное, есть смысл вместо int использовать либо WORD/DWORD либо что-то вроде майкрософтовского __int16/__int32/__int64. И причем с выравниванием по 1 байту. И без загонов с вложенными скобками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2007, 00:50 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34374919&tid=2029313]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
149ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 212ms |
| total: | 424ms |

| 0 / 0 |
